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