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

时间:2009-07-28 14:15:10

标签: c# compact-framework dns

这是在使用Compact Framework通过USB连接到我的计算机的手持设备上:

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

有没有办法阻止它这样做?是通过P / Invoke直接调用DLL修复它吗?

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

1 个答案:

答案 0 :(得分:2)

当你调用Dns.GetHostEntry(“”)时,我认为你会在127.0.0.1的IPHostEntry.AddressList中找回一个条目(事实上,这就是快速测试所显示的)。 Dns.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());
}