Получить IP-адрес хост-компьютера из Windows Mobile при подключении через ActiveSync - PullRequest
5 голосов
/ 20 января 2009

У меня есть приложение .Net Compact, работающее на Windows Mobile, и я хочу иметь возможность подключаться к веб-сервису, работающему на хост-машине (то есть к рабочему столу, к которому подключен КПК) при подключении через ActiveSync, но я не знаю IP-адрес хоста. Как программно найти ip настольного ПК на КПК?

Ответы [ 2 ]

9 голосов
/ 21 января 2009

Я нашел статью базы знаний Как получить IP-адрес удаленного узла PPP , который использует хост «PPP_Peer». Итак, я попробовал:

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

И это дает мне то, что я ищу (169.254.2.2 на компьютере, которым я сейчас пользуюсь).

3 голосов
/ 20 января 2009

Получение адреса ничем не отличается от того, когда вы подключены к любому другому сетевому адаптеру (обычно ActiveSync в настоящее время работает через RNDIS).

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

При этом ActiveSync всегда создает локальную сеть, поэтому устройство всегда будет получать 192.168.55.101 (и 192.168.55.100 для хост-ПК). Теоретически, это может быть что-то другое, но за десятилетие, когда я работал с CE, я никогда не видел, чтобы он давал какой-либо другой адрес (кроме как под WMDC Vista, который имеет тенденцию использовать другую, но вполне предсказуемую схему адресации) .

РЕДАКТИРОВАТЬ : Похоже, вы пытаетесь получить не свой IP, а IP-адрес подключенного ПК. ActiveSync не является полноценным сетевым подключением. Он фильтрует некоторые типы пакетов, и вы не получаете разрешение имен, поэтому вы не можете получить IP-адрес ПК из кода устройства, выполнив команду Dns.Resolve для имени ПК. Вы должны предоставить IP-адрес непосредственно приложению устройства.

...