Обнаружение всех типов сетевых устройств в домашней сети - PullRequest
1 голос
/ 27 октября 2010

Я хотел бы написать программное обеспечение, работающее на сетевом устройстве, т.е. на ПК.Он может автоматически определять типы других сетевых устройств.Например, он может обнаружить, что в той же сети работает PS3, Wii, IPad.Есть идеи?Спасибо,

Ответы [ 2 ]

1 голос
/ 27 октября 2010

У вас есть две проблемы: во-первых, обнаружение, что устройство подключено к вашей сети, и на 192.168.1.<em>x</em>.Во-вторых, как-то определить, что это за устройство.

Первое легко осуществить: есть протоколы обнаружения, такие как UPnP и Bonjour.Однако в сценарии домашней сети самый простой и надежный способ получить список подключенных устройств - это, вероятно, получить резервирование DHCP с вашего маршрутизатора.Возможно, вам придется почистить данные из интерфейса управления на основе HTML-маршрутизатора, каким бы хамовым это ни было, но это сработает.(Если вы используете .NET, рассмотрите возможность использования HTML Agility Pack .)

Как только у вас есть список IP-адресов подключенных устройств, ваша следующая проблема - выяснить,что такое каждое устройство на самом деле.Это будет более сложным.Некоторые возможности:

  • Возможно, вы сможете использовать MAC-адрес, чтобы помочь определить поставщика устройства.( Вот список. )
  • Если вы используете UPnP, вы можете спросить устройство, что это такое.
  • Использовать IP-отпечатки пальцев дляопределить, что это за устройство.
0 голосов
/ 30 мая 2013

пара мыслей. Широковещательный IP-адрес - 255.255.255.255 - это то, где устройства говорят и говорят «вот я». Должен быть в состоянии прослушать это и найти IP-адреса и многое другое. Во-вторых, если устройствам назначается IP-адрес DHCP-клиентом (очевидно), вы обычно можете найти список на устройстве dhcp. Устройства часто имеют имена, это протокол более высокого уровня, например Windows SMB, с которым вам, возможно, придется взаимодействовать, чтобы получить эту информацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...