【问题标题】:Discovering IoT Devices on the network发现网络上的物联网设备
【发布时间】:2015-07-01 17:26:40
【问题描述】:

我想尽可能多地发现有关网络上物联网设备的信息。我已经看到了枚举设备、查找 IP 地址和 MAC 地址的代码,但我还能找到什么?我特别想知道什么是灯,更重要的是,制造商是什么。

我一直在查看 IoTivity 和 AllJoyn 以及各种零配置协议的一些文档。据我了解,这些事情更关心的是暴露的服务,而不是设备是什么。

我误解了吗?有什么方法可以绘制本地网络并准确了解每个设备是什么?

【问题讨论】:

  • 这与常规网络扫描没有任何不同,其目的是列出本地网络上或任意 IP 范围内的所有 IP 可寻址设备。这可能会被 ISP 或网络管理员禁止。
  • 我说的是家庭网络,所以真的没有什么可以阻止你这样做。是的,这是一次常规的网络扫描,很容易获得 IP 地址等信息。我的兴趣是如何获取有关设备的更多详细信息。
  • 本文讨论了发现物联网设备的不同扫描技术:sciencedirect.com/science/article/pii/S1353485818300333

标签: network-programming iot zeroconf alljoyn iotivity


【解决方案1】:

AllJoyn 提供About Announcement 服务,您可以通过该服务获得所需的内容:

  • 应用和设备友好名称
  • 品牌、型号、版本、说明
  • 支持的语言
  • 应用图标
  • 支持的对象和接口
  • ...

【讨论】:

  • 好的,这就是我要找的。所以在我看来,我在网络上找到的每台设备都可以查询这些信息。 如果设备支持AllJoyn,那我就在家了。这是正确的吗?我可以检查其他协议吗?我也知道 HNAP,但这似乎是一个古老的协议,主要用于路由器。
  • 我不知道 HNAP。所以,在这方面我对你没用。关于 AllJoyn,是的,您是对的。正如我上面提到的链接中所述,可以提供服务的 AllJoyn 设备可以使用About Announcement Service 自行宣传它们。 AllJoyn 客户端设备可以通过收听About Announcement Service 来发现 AllJoyn 服务器设备。一旦他们发现了足够的服务,他们就可以连接到它。值得一提的是,AllJoyn 提供了other valuable services,可以方便地就近集成设备。
  • HNAP 是大约 15 年前由 Linksys 收购的一家公司开发的协议。它使识别网络上的设备变得非常容易,并为我提供了我想要的东西,但实际上已经不再使用了。
【解决方案2】:

首先查看 DPWS(Web 服务的设备配置文件)。这是我们服务标准(例如,WSDL 或 SOAP)的子集,允许与在嵌入式设备上运行的 Web 服务进行最少的交互。通常在使用此类服务​​时交换的消息包含元数据,这些元数据可以告知您:

  1. 范围 - 用于根据组进行组织的属性(例如位置)
  2. 型号和设备 - 有关设备的信息(例如制造商)
  3. 类型 - 设备可以发送的消息(例如,关闭)

要使用这些设备,您需要一个为这些设备提供某种抽象的控制层。该层称为中间件。我建议你看看 SOCRADES。这是一个欧盟项目,我相信他们的源代码应该可以在他们的专用网站上找到。

我之所以提到 SOCRADES,是因为它具有可以强制网络安装的功能。可以使用它们的 DPWS 配置文件在这些设备上安装新服务,并假设它们具有一些通信和计算能力。

中间件的其他示例有:OpenIot、Choreos、Ubiware 等。所有这些中间件都是开源的。现在,您可以在这些中间件之上构建您的应用程序。这就是您要对设备执行的操作。

【讨论】:

  • DPWS 是否提供发现服务?例如,假设我正在构建一个智能家居,我想使用我的智能手机控制我的电视。有没有一种安全的方法可以让我的智能手机识别电视(距离我 10 米时)可以打开和关闭?
  • DPWS 通过提供元数据帮助服务发现,以便用户或其他设备可以发现设备及其功能。一般来说,中间件提供执行服务发现的组件。
  • 如果我现在或五年后查看家庭中的典型网络,是否会有任何设备将使用此服务?
  • 很可能会出现类似情况,因为现在的工作是弄清楚如何虚拟化基础架构以及如何组合这些设备提供的服务。但是,对这些设备进行标记和添加元数据将是强制性的。不知何故,这些数据需要提供给用户或中间件。此外,现在和五年后提供了许多此类中间件(例如 Xively、Carriots),它们发现设备并从设备读取数据。
【解决方案3】:

uPnP 是当今相当普遍的协议,并在相当多的设备(即打印机)中实现。这也用于一些现代物联网项目。它还支持设备描述。看一个例子:

<?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>

【讨论】:

    猜你喜欢
    • 2011-10-11
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    • 2015-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多