2015-07-01 8 views
4

Я хотел бы узнать как можно больше информации об устройствах IoT в сети. Я видел код для перечисления устройств, поиска IP-адресов и MAC-адресов, но что еще я могу найти? В частности, я хотел бы знать, что что-то есть лампа, и что более важно, что производитель.Обнаружение устройств IoT в сети

Я просматривал документацию для IoTivity и AllJoyn, а также различные протоколы Zero Configuration. Из того, что я понимаю, эти вещи больше связаны с предоставляемыми услугами, а не с каким именно устройством.

Не понимаю ли я это? Есть ли способ отобразить локальную сеть и точно знать, что такое каждое устройство?

+0

Это не будет отличаться от обычного сканирования сети с целью перечисления всех IP-адресуемых устройств в локальной сети или в пределах произвольного диапазона IP. Это может быть запрещено интернет-провайдерами или сетевыми администраторами. –

+0

Я действительно говорю о домашней сети, поэтому на самом деле не должно быть ничего, чтобы остановить вас от этого. Да, это обычное сетевое сканирование, и легко получить информацию, такую ​​как IP-адреса. Я заинтересован в том, как получить более подробную информацию об устройствах. –

+0

В этой статье рассказывается о различных методах сканирования для обнаружения устройств IoT: https://www.sciencedirect.com/science/article/pii/S1353485818300333 – learnerX

ответ

2

AllJoyn предлагает About Announcement сервис, через который вы можете получить то, что вы ищете:

  • App и устройства Понятные имена
  • Марка, модель, версия, описание
  • Поддерживаемые языки
  • App Icon
  • Поддерживаемые объекты и интерфейсы
  • ...
+0

Итак, это то, что я ищу. Поэтому мне кажется, что каждое устройство, которое я нахожу в сети, могу запросить эту информацию. * ЕСЛИ * устройство поддерживает AllJoyn, тогда я дома бесплатно. Это правильно? Есть ли другие протоколы, которые я могу проверить? Я также знаю о HNAP, но это, похоже, древний протокол, который в основном предназначен для маршрутизаторов. –

+0

Я не знаю о HNAP. Итак, я бесполезен для вас в этом отношении. Что касается AllJoyn, да, вы правы. Как описано в ссылке, упомянутой выше, AllJoyn Devices, предлагающие услуги, могут рекламировать их самостоятельно, используя «О службе анонса». Все клиентские устройства AllJoyn могут обнаружить серверные устройства AllJoyn, прослушивая «Об услуге анонса». Как только они обнаружат адекватное обслуживание, они могут подключиться к нему. Следует отметить, что AllJoyn предоставляет [другие ценные услуги] (https://allseenalliance.org/developers/learn/base-services), которые облегчают интеграцию устройств в непосредственной близости. – Younes

+0

HNAP был протоколом около 15 лет назад, разработанным компанией, которая была куплена Linksys. Это действительно упростило идентификацию устройств в сети и дало мне именно то, что я хочу, но на самом деле не используется. –

0

Начните поиск в DPWS (профиль устройства для веб-служб). Это подмножество стандартов обслуживания (например, WSDL или SOAP), что позволяет минимально взаимодействовать с веб-службами, работающими на встроенных устройствах. Обычно сообщения, которыми обмениваются при использовании такого сервиса содержит метаданные, которые могут сообщить Вам о:

  1. Scope - атрибуты, используемые для организации в соответствии с группами (например, местоположение)
  2. модели и устройства - информация об устройстве (например, производителя)
  3. Типы - сообщения о том, что устройство может отправить (например, отключить)

Чтобы использовать эти устройства нужно слой управления, который обеспечивает определенную абстракцию к этим устройствам. Этот слой называется промежуточным программным обеспечением. Я предлагаю вам заглянуть в SOCRADES. Это проект ЕС, и я считаю, что их исходный код должен быть доступен на их специализированном веб-сайте.

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

Другие примеры промежуточных продуктов: OpenIot, Choreos, Ubiware и т. Д. Все упомянутые выше упомянутые средние версии являются open source. Теперь, поверх этих промежуточных программ вы создаете свое приложение. Это то, что вы хотите делать с устройствами.

+0

DPWS предоставляет услугу по обнаружению? Например, предположим, что я строю умный дом, где я хочу контролировать свой телевизор с помощью своего смартфона. Есть ли безопасный способ, позволяющий моему смартфону признать, что телевизор (когда он находится на расстоянии 10 метров от меня) можно включить и выключить? – Younes

+0

DPWS помогает с обнаружением службы, предоставляя метаданные, чтобы пользователи или другие устройства могли обнаружить устройство и его возможности. В общем, middlewares предоставляют компонент, который выполняет обнаружение службы. – Andrei

+0

Если я посмотрю на типичную сеть в доме сейчас или через пять лет, будут ли какие-либо устройства, которые будут использовать эту услугу? –

0

uPnP - довольно распространенный протокол в настоящее время и реализован в довольно большом количестве устройств (например, принтеров). Это также используется для некоторых современных проектов IoT. Он также поддерживает описание устройства. См. Пример:

<?xml version='1.0'?> 
<root xmlns="urn:schemas-upnp-org:device-1-0" xmlns:pnpx="http://schemas.microsoft.com/windows/pnpx/2005/11"> 
<specVersion> 
    <major>1</major> 
    <minor>0</minor> 
</specVersion> 
<device> 
    <pnpx:X_deviceCategory>MediaDevices</pnpx:X_deviceCategory> 
    <deviceType>urn:schemas-microsoft-com:device:MediaCenterExtenderMFD:1</deviceType> 
    <friendlyName>Xbox 360 Media Center Extender</friendlyName> 
    <manufacturer>Microsoft Corporation</manufacturer> 
    <manufacturerURL>http://www.xbox.com/</manufacturerURL> 
    <modelDescription>Xbox 360 Media Center Extender</modelDescription> 
    <modelName>Xbox 360</modelName> 
    <modelNumber></modelNumber> 
    <modelURL>http://go.microsoft.com/fwlink/?LinkID=53081</modelURL> 
    <serialNumber></serialNumber> 
    <UDN>uuid:10000000-0000-0000-0200-00125A702E78</UDN> 
    <UPC></UPC> 
    <iconList> 
     ... 
    </iconList> 
    <serviceList> 
     ... 
    </serviceList> 
</device> 
</root>