5 votes

Obtenir l'adresse IP du PC hôte depuis un appareil mobile Windows connecté via ActiveSync

J'ai une application .Net Compact qui fonctionne sur Windows Mobile et je veux pouvoir me connecter à un service web fonctionnant sur la machine 'hôte' (c'est-à-dire le bureau auquel le PDA est connecté) lorsqu'il est connecté via ActiveSync, mais je ne connais pas l'adresse IP de l'hôte. Comment puis-je trouver l'IP du PC de bureau de manière programmative sur le PDA?

9voto

Wilka Points 13239

J'ai trouvé un article KB Comment récupérer l'adresse IP du homologue PPP distant, qui utilise l'hôte "PPP_Peer". Donc j'ai essayé :

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

Et cela me donne ce que je cherche (169.254.2.2 sur le PC que j'utilise en ce moment).

3voto

ctacke Points 53946

Obtenir l'adresse n'est pas différent lorsque vous êtes connecté à un autre adaptateur réseau (généralement ActiveSync fonctionne désormais via RNDIS).

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

Cela dit, ActiveSync crée toujours un réseau local, donc l'appareil va toujours obtenir 192.168.55.101 (et 192.168.55.100 pour l'ordinateur hôte). En théorie, cela pourrait être différent, mais au cours de la décennie que j'ai passée à travailler avec CE, je n'ai jamais vu d'autre adresse attribuée (sauf sous WMDC de Vista, qui a tendance à utiliser un schéma d'adressage différent mais assez prévisible).

MISE À JOUR : Il semble que vous n'essayiez pas d'obtenir votre propre IP, mais celui de l'ordinateur connecté. ActiveSync n'est pas une connexion réseau complète. Il filtre certains types de paquets et vous n'obtenez pas de résolution de nom, donc vous ne pouvez pas obtenir l'adresse IP du PC à partir du code de l'appareil en effectuant une résolution de nom Dns sur le nom du PC. Vous devez fournir directement l'IP à l'application de l'appareil.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X