5

我有一个在 Windows Mobile 上运行的 .Net Compact 应用程序,我希望通过 ActiveSync 连接时能够连接到运行在“主机”机器(即 PDA 插入的桌面)上的 Web 服务,但我没有知道主机的ip地址。如何在 PDA 上以编程方式找到台式 PC 的 ip?

4

2 回答 2

9

我找到了一篇知识库文章How To Retrieve the IP Address of the Remote PPP Peer,它使用主机“PPP_Peer”。所以我尝试了:

Dns.GetHostEntry("PPP_Peer").AddressList[0]

这确实给了我正在寻找的东西(我目前正在使用的 PC 上的 169.254.2.2)。

于 2009-01-21T11:13:35.640 回答
3

获取地址与连接到任何其他网络适配器时没有什么不同(现在 ActiveSync 通常在 RNDIS 上运行)。

Dns.GetHostEntry(Dns.GetHostName()).AddressList[0];

也就是说,ActiveSync 总是会创建一个本地网络,因此设备总是会获得 192.168.55.101(以及主机 PC 的 192.168.55.100)。理论上它可能会有所不同,但在我与 CE 合作的十年中,我从未见过它给出任何其他地址(除了在 Vista 的 WMDC 下,它倾向于使用不同但非常可预测的寻址方案) .

编辑:看来您不是在尝试获取自己的 IP,而是在连接的 PC 上。ActiveSync 不是一个成熟的网络连接。它会过滤某些数据包类型并且您无法获得名称解析,因此您无法通过对 PC 名称执行 Dns.Resolve 从设备代码中获取 PC 的 IP 地址。您必须将 IP 直接提供给设备应用程序。

于 2009-01-20T16:20:25.147 回答