通过ActiveSync连接时,从Windows Mobile获取主机pc的IP地址

时间:2009-01-20 16:10:32

标签: windows-mobile compact-framework activesync

我在Windows Mobile上运行了一个.Net Compact应用程序,我希望能够通过ActiveSync连接到在“主机”计算机上运行的Web服务(即PDA插入的桌面),但是我不知道主机的IP地址。如何在PDA上找到桌面PC的ip?

2 个答案:

答案 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。