Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正在获取端口137上接收的broadmessage meesage的源IP地址_C#_Sockets_Udp_Modem_Packet Capture - Fatal编程技术网

C# 正在获取端口137上接收的broadmessage meesage的源IP地址

C# 正在获取端口137上接收的broadmessage meesage的源IP地址,c#,sockets,udp,modem,packet-capture,C#,Sockets,Udp,Modem,Packet Capture,我试图从DSL调制解调器发送的广播数据包中获取IP地址,并使用UDP协议在端口137上接收。当连接存在时,我能够读取IP地址 但是,在未识别的网络状态下,当我的调制解调器配置为DHCP,并且允许特定范围的IP,并且我的机器上的设置为自动检测时: 我在读取广播消息时获得机器的默认本地IP地址。这将从169开始 注意:我正在重新启动调制解调器以接收广播消息 Socket sock = new Socket(AddressFamily.InterNetwork,

我试图从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();
Socket sock=新套接字(AddressFamily.InterNetwork,
Dgram,ProtocolType.Udp);
IPEndPoint iep=新IPEndPoint(IPAddress.Any,137);
sock.Bind(iep);
终点ep=(终点)iep;
int iLoopCount=0;

而(iLoopCount在

您是说当DHCP服务器重新启动或处于非运行状态时,您无法检索IP地址吗?如果您的主机配置为自动检索IP地址,我认为您需要重新考虑您的过程,因为这就是问题的全部。除此之外,我不确定您遇到的问题是什么。当DHCP服务器重新启动后,我可以在Wireshark和网络监视器上看到Nbtns数据包,源ip地址为192.168.1.252(调制解调器ip地址)。我正在尝试使用位于137端口的c#UDP侦听器从相同的数据包获取源ip地址。ip地址被检索为169.254.x.x,而不是192.168.1.252。我仍然不确定您的问题是什么?您是说在DHCP服务器重新联机后,您无法从本地主机提取ip吗?如果您正在ping I从您的“DHCP服务器”,您可能自己解析了一个IP地址。编辑:我在编辑之前提交了此文件,您是否有理由需要嗅探NetBIOS数据包来完成此操作,或者仅在数据包联机时检索调制解调器/dhcp/服务器地址就足够了?我得到了答案,可以通过嗅探数据包和dhcp设置来获取集线器的IP地址正在提取标头的源IP。