Windows Mobile で実行されている .Net Compact アプリがあり、ActiveSync 経由で接続されているときに、「ホスト」マシン (つまり、PDA が接続されているデスクトップ) で実行されている Web サービスに接続できるようにしたいのですが、できません。ホストのIPアドレスを知っています。デスクトップ PC の IP を PDA でプログラム的に見つけるにはどうすればよいですか?
2 に答える
ホスト「PPP_Peer」を使用するリモートPPPピアのIPアドレスを取得する方法に関するKB記事を見つけました。だから私は試しました:
Dns.GetHostEntry("PPP_Peer").AddressList[0]
そしてそれは私が探しているものを私に与えます(私が現在使用しているPCでは169.254.2.2)。
アドレスを取得する方法は、他のネットワーク アダプターに接続している場合と変わりません (現在、通常、ActiveSync は RNDIS を介して実行されています)。
Dns.GetHostEntry(Dns.GetHostName()).AddressList[0];
つまり、ActiveSync は常にローカル ネットワークを作成するため、デバイスは常に 192.168.55.101 (およびホスト PC の場合は 192.168.55.100) を取得します。理論的には何か違うかもしれませんが、私が CE と仕事をしてきた 10 年間で、CE が他のアドレスを与えるのを見たことはありません (Vista の WMDC を除いて、異なるがかなり予測可能なアドレッシング スキームを使用する傾向があります)。 .
編集: 自分の IP を取得しようとしているのではなく、接続されている PC の IP を取得しようとしているようです。ActiveSync は本格的なネットワーク接続ではありません。一部のパケット タイプはフィルター処理され、名前解決は行われません。そのため、PC 名に対して Dns.Resolve を実行しても、デバイス コードから PC の IP アドレスを取得できません。IP をデバイス アプリに直接提供する必要があります。