how can I parse a UDP packet in .NET?
I'm using PCap.Net to capture packets, in this case UDP packets, which I can access from the PCap.net object via (PcapDotNet.packets.Ethernet.IpV4.Udp).
How can I take the results, the Udp packet, and parse this? In particular to unbundle DNS requests and responses that occur that are housed within a UDP packet.
Is there a library that could help here?
EDIT: To be more specific what I want to be able to do is extract the IP address from the DNS response, and based on examination using Wireshark it would be by:
(a) Input: Payload of a UDP packet that is a DNS response
(b) Processing: Parse out the DNS response portion of the UDP packet. Find the Answers portion, within this find the answer record for which the type is A (Host Address) [not a CNAME record], then with this answer record get the IP address.
(c) Return: The IP address from the DNS response.
I found the following project which had the code to do this
http://www.codeproject.com/KB/IP/dnslookupdotnet.aspx
The Response.cs class in particular. Also note there is a bug in the code but the comments on the page highlight where this is.
From PCAP.Net:
Pcap.Net.DevelopersPack.0.7.0.46671.x64\src\InterpretingThePackets\Program.cs
Isn't it enough?