0

我正在尝试从 DSL 调制解调器发送并使用 UDP 协议在端口 137 上接收的广播数据包中获取 IP 地址。当存在连接时,我能够读取 IP 地址。

但是,在未识别的网络状态下,当我的调制解调器配置为 DHCP 并且允许特定范围的 IP 并且我的机器上的设置是自动检测时:

我在阅读广播消息时获得了机器的默认本地 IP 地址。那将从169开始。

注意:我正在重新启动调制解调器以接收广播消息。

Socket sock = new Socket(AddressFamily.InterNetwork,
                        SocketType.Dgram, ProtocolType.Udp);
                IPEndPoint iep = new IPEndPoint(IPAddress.Any, 137);
                sock.Bind(iep);
                EndPoint ep = (EndPoint)iep;
                int iLoopCount=0;
                while (iLoopCount <= 10000)
                {
                    Console.WriteLine("Ready to receive…");
                    byte[] data = new byte[1024];
                    int recv = sock.ReceiveFrom(data, ref ep);                    
                    string stringData = Encoding.Default.GetString(data, 0, recv);
                    Console.WriteLine("{1}: from: {0}",((IPEndPoint)ep).Address.ToString(),DateTime.Now.ToString());

                    iLoopCount++;
                   // Console.WriteLine(sock.RemoteEndPoint.ToString());
                }
                sock.Close();
                Console.Read();
4

1 回答 1

0

在http://www.codeproject.com/Articles/17031/A-Network-Sniffer-in-C找到了我的问题的答案

于 2013-01-31T10:42:08.963 回答