我在Windows Mobile上运行了一个.Net Compact应用程序,我希望能够通过ActiveSync连接到在“主机”计算机上运行的Web服务(即PDA插入的桌面),但是我不知道主机的IP地址。如何在PDA上找到桌面PC的ip?
答案 0 :(得分:9)
我找到了一篇KB文章How To Retrieve the IP Address of the Remote PPP Peer,它使用主机“PPP_Peer”。所以我试过了:
Dns.GetHostEntry("PPP_Peer").AddressList[0]
这确实给了我正在寻找的东西(我现在正在使用的PC上的169.254.2.2)。
答案 1 :(得分:3)
获取地址与您连接到任何其他网络适配器(通常ActiveSync现在通过RNDIS运行)没有什么不同。
Dns.GetHostEntry(Dns.GetHostName()).AddressList[0];
也就是说,ActiveSync总是创建一个本地网络,因此设备总是会获得192.168.55.101(主机PC为192.168.55.100)。理论上它可能是不同的东西,但在我使用CE的十年中,我从未见过它提供任何其他地址(除了Vista的WMDC,它倾向于使用不同的,但可预测的寻址方案)
编辑:您似乎并没有尝试获取自己的IP,而是连接PC的IP。 ActiveSync不是一个完整的网络连接。它会过滤某些数据包类型而您无法获得名称解析,因此您无法通过在PC名称上执行Dns.Resolve来从设备代码中获取PC的IP地址。您必须直接向设备应用提供IP。