写端口侦听器

本文关键字:侦听器 | 更新日期: 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。