Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.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# Dns.GetHostEntry在Windows Mobile上返回错误的IP地址_C#_Compact Framework_Dns - Fatal编程技术网

C# Dns.GetHostEntry在Windows Mobile上返回错误的IP地址

C# Dns.GetHostEntry在Windows Mobile上返回错误的IP地址,c#,compact-framework,dns,C#,Compact Framework,Dns,这是一个通过USB连接到我的电脑的手持设备,使用紧凑的框架: 当我调用Dns.GetHostEntry(“”)或Dns.GetHostEntry(IPAddress.Loopback)获取手持设备的IPAddress时,我会获取主机的IPAddress。但当我从手持设备向电脑发送数据包时,它们来自不同的地址 有没有办法阻止它这样做?通过P/Invoke直接调用DLL可以解决这个问题吗 手持设备未通过WiFi或蓝牙连接。唯一的连接是通过USB。当你调用Dns.GetHostEntry(“”)时,我

这是一个通过USB连接到我的电脑的手持设备,使用紧凑的框架:

当我调用Dns.GetHostEntry(“”)或Dns.GetHostEntry(IPAddress.Loopback)获取手持设备的IPAddress时,我会获取主机的IPAddress。但当我从手持设备向电脑发送数据包时,它们来自不同的地址

有没有办法阻止它这样做?通过P/Invoke直接调用DLL可以解决这个问题吗


手持设备未通过WiFi或蓝牙连接。唯一的连接是通过USB。

当你调用Dns.GetHostEntry(“”)时,我想你会在127.0.0.1的IPHostEntry.AddressList中找到一个条目(事实上,这就是快速测试所显示的)。GetHostEntry(IPAddress.Loopback)返回两个条目:127.0.0.1和::1

两者都不返回主机PC的IP地址,也不应返回设备的IP地址。如果您需要设备的IP地址,请使用以下内容:

IPHostEntry hostent = Dns.GetHostEntry(Dns.GetHostName());

foreach (var addr in hostent.AddressList)
{
    Debug.WriteLine(addr.ToString());
}

你说得对。Dns.GetHostEntry(Dns.GetHostName())返回正确的信息,而Dns.GetHostEntry(“”)返回错误的信息。即使MSDN信息说传入一个空字符串将获得有关本地主机的IP地址信息。此外,您还提到了在compact框架中不可用的Dns.GetHostAddress。