写端口侦听器
本文关键字:侦听器 | 更新日期: 2023-09-27 18:26:37
我写了一个像嗅探器一样的应用程序,它可以在端口上侦听,并向用户显示在计算机和互联网之间传输的信息,比如源和目的地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);
}
通常不需要这样做。看看Wire Shark。如果找不到所需的内容,您可以编写自己的协议分析器和其他插件。
此外,还可以看看WinPCap,它可以让您的应用程序访问与WireShark相同的嗅探功能。
当你说时
url地址而不是ip地址
你是说dns名称吗?在这种情况下,您需要使用dns类和Dns.GetHostEntry
方法从IP地址中查找名称。
如果你正在寻找URL信息,那么正如@David Schwartz所说,你必须解码你捕获的所有数据,这些数据中可能有也可能没有URL。