Автоматическое обнаружение устройства в сети IPv6 / IPv4

У нас есть устройства Win CE IPv6 / IPv4, установленные в комнате и подключенные к сети. Время от времени человек приходит с ноутбуком, подключает его к сети и запускает программу диагностики.
Эта программа должна каким-то образом автоматически находить или обнаруживать все эти устройства. Загвоздка в том, что IP-адреса устройств неизвестны программе диагностики.

Я изучал обнаружение локальных ссылок IPv6, но я не совсем уверен, как это проверить.

В нашей локальной сети, если я пингую известный IPv6-адрес другого компьютера, он пингуется нормально, но если я делаю ping -6 fe80 :: 1, я получаю «Целевой хост недоступен», а для ping -6 FF02 :: 1 я получаю «Запрос по времени. вне"

поэтому я не уверен, как даже протестировать обнаружение локальной ссылки в Windows.

Так как же это сделать?


person Mladen Prajdic    schedule 18.02.2010    source источник
comment
Я не совсем понимаю, как это связано с программированием? Вы используете DLNA / UPnP?   -  person Filip Ekberg    schedule 18.02.2010
comment
ну, я должен сделать это как-то в программе диагностики, которая является C #, так что я думаю, что это связано с программированием. Я был бы счастлив перенести его в другое место, если это необходимо.   -  person Mladen Prajdic    schedule 18.02.2010
comment
в данный момент я ничем не пользуюсь. Я спрашиваю, как это можно сделать, чтобы я мог начать что-то использовать :)   -  person Mladen Prajdic    schedule 18.02.2010


Ответы (4)


Если устройства поддерживают zeroconf, тогда вы сможете использовать "net view", чтобы получить список локальных серверов. Затем вы можете использовать реализацию Windows dns для разрешения IP-адреса из имени хоста. Команда Ping.exe была бы ярлыком, если бы вы хотели сделать все это из сценария, поскольку она будет принимать имя хоста и отображать IP-адрес, который он проверяет.

Вероятно, есть более элегантный способ напрямую использовать протокол zeroconf, но все вышеперечисленное тоже должно работать нормально.

person David Gladfelter    schedule 18.02.2010
comment
имена устройств не гарантируются. это будет проблемой? - person Mladen Prajdic; 18.02.2010
comment
так что я думаю об этом не может быть и речи тогда ... облом. - person Mladen Prajdic; 18.02.2010

Попробуйте использовать nmap для сканирования всей сети и получения текущих подключенных устройств с назначенным IP-адресом, бесплатно вы можете получить определение ОС и версии.

Здесь вы можете получить двоичные файлы Windows: http://nmap.org/download.html

С Уважением.

person mdaguete    schedule 18.02.2010
comment
будет ли это работать, даже если диапазон IP-адресов устройств отличается от диапазона IP-адресов сети, к которой подключен ноутбук? например, LAN - 172.16.x.x, но IP-адреса устройств - 192.4.x.x? - person Mladen Prajdic; 18.02.2010
comment
да, это меня тоже беспокоит :) у тебя есть идеи получше, Джей Би? - person Mladen Prajdic; 19.02.2010
comment
Ответьте на вопрос разные ланы .. если сети правильно проложены, все работает. - person mdaguete; 19.02.2010

Для IPv4 используйте широковещательную рассылку на 169.254.254.255 для ненастроенных устройств, или вы можете запросить и широковещательно рассылать DHCP в обнаруженную подсеть, или я уверен, что некоторые приложения просто рассылают широковещательную рассылку на 255.255.255.255.

IPv6 использует многоадресную рассылку в области локальной связи для каждого адаптера, в IPv6 нет широковещательной рассылки, поэтому вы не можете использовать ICMP ping.

Это будет означать, что для приложения, не зависящего от версии IP, вам необходимо реализовать службу обнаружения уровня приложения или использовать существующую технологию, такую ​​как ZeroConf.

person Steve-o    schedule 31.07.2010

В этом контексте может быть полезен LLDP.

Я думаю, что Windows CE не поддерживает его напрямую, но, возможно, вы могли бы получить необходимую информацию через промежуточный коммутатор - при условии, что вы подключены к тому же коммутатору, что и устройства, или у вас есть доступ по протоколу SNMP к этому коммутатору.

person hdiogenes    schedule 22.10.2015