我写了一个类似嗅探器的应用程序,它可以在端口上侦听并向用户显示在您的计算机和互联网之间传输的信息,如源和目标IP。
我怎样才能将其更改为检索url地址而不是ip地址是否可能? 我使用套接字。
private byte[] byUDPData = new byte[4096]; //Data carried by the UDP packet
public UDPHeader(byte [] byBuffer, int nReceived)
{
MemoryStream memoryStream = new MemoryStream(byBuffer, 0, nReceived);
BinaryReader binaryReader = new BinaryReader(memoryStream);
//The first sixteen bits contain the source port
usSourcePort = (ushort)IPAddress.NetworkToHostOrder(binaryReader.ReadInt16());
//The next sixteen bits contain the destination port
usDestinationPort = (ushort)IPAddress.NetworkToHostOrder(binaryReader.ReadInt16());
//The next sixteen bits contain the length of the UDP packet
usLength = (ushort)IPAddress.NetworkToHostOrder(binaryReader.ReadInt16());
//The next sixteen bits contain the checksum
sChecksum = IPAddress.NetworkToHostOrder(binaryReader.ReadInt16());
//Copy the data carried by the UDP packet into the data buffer
Array.Copy(byBuffer,
8,
byUDPData,
0,
nReceived - 8);
}
答案 0 :(得分:1)
通常没有必要这样做。看看Wire Shark。如果找不到您需要的内容,您可以编写自己的协议分析程序和其他加载项。
另外,请查看WinPCap,它可让您的应用程序访问Wire Shark的相同嗅探功能。
答案 1 :(得分:0)
当你说
时你是说dns的名字吗?在这种情况下,您需要使用dns类和url地址而不是ip地址
Dns.GetHostEntry
方法从IP地址中查找名称。
如果您正在寻找网址信息,那么正如@David Schwartz所说,您将不得不解码您捕获的所有数据,其中可能包含或可能没有网址。