这是在使用Compact Framework通过USB连接到我的计算机的手持设备上:
当我调用Dns.GetHostEntry(“”)或Dns.GetHostEntry(IPAddress.Loopback)来获取掌上电脑的IP地址时,我得到了我的主机的IP地址。但是,当我从手持设备向我的计算机发送数据包时,它们来自不同的地址。
有没有办法阻止它这样做?是通过P / Invoke直接调用DLL修复它吗?
手持设备未通过WiFi或蓝牙连接。唯一的连接是通过USB。
答案 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());
}