获取端口137上收到的广播消息的源IP地址

时间:2013-01-24 13:53:30

标签: c# sockets udp modem packet-capture

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

1 个答案:

答案 0 :(得分:0)