2015-07-01 112 views
4

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

我一直在寻找IoTivity和AllJoyn的一些文档以及各种零配置协议。据我所知,这些东西更关心的是暴露的服务,而不是设备的内容。

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

+0

这与常规网络扫描没有任何区别,目的是列出本地网络上或任意IP范围内的所有IP寻址设备。这可能会被ISP或网络管理员禁止。 –

+0

我真的在谈论家庭网络,所以真的不应该有任何阻止你这样做的事情。是的,这是一个常规的网络扫描,很容易获得像IP地址这样的信息。我的兴趣是如何获得有关设备的更多详细信息。 –

回答

2

AllJoyn提供About Announcement服务,通过它,你可以让你在找什么:

  • 应用程序和设备友好名称
  • 制造商,型号,版本,说明
  • 支持的语言
  • 应用程序图标
  • 支持的对象和接口
  • ...
+0

好的,这就是我要找的。所以在我看来,我在网络上找到的每一台设备都可以查询这些信息。 *如果*该设备支持AllJoyn,那么我免费。这是正确的吗?还有其他协议可以检查吗?我也知道HNAP,但这似乎是一个古老的协议,主要是路由器。 –

+0

我不知道HNAP。所以,在这方面我对你毫无用处。关于AllJoyn,是的,你是对的。正如上面提到的链接中所述,AllJoyn设备提供的服务可以使用“关于公告服务”自行发布。 AllJoyn客户端设备可以通过监听关于公告服务来发现AllJoyn服务器设备。一旦他们发现了足够的服务,他们就可以连接到它。 值得注意的是,AllJoyn提供了[其他有价值的服务](https://allseenalliance.org/developers/learn/base-services),可以轻松整合邻近的设备。 – Younes

+0

HNAP是一个由Linksys购买的公司开发的约15年前的协议。它使得识别网络上的设备变得非常容易,并且给了我想要的东西,但实际上并没有太多用处。 –

0

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

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

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

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

其他中间件的例子有:OpenIot,Choreos,Ubiware等。所有这些中间件都是开源的。现在,在这些中间件的基础上构建应用程序。这是你想用这些设备做什么。

+0

DPWS是否提供发现服务?例如,假设我正在建造一个智能家居,我想用我的智能手机来控制我的电视。有没有一种安全的方式可以让我的智能手机识别出电视机(一旦离我10米远)可以打开和关闭? – Younes

+0

DPWS通过提供元数据来帮助进行服务发现,以便用户或其他设备可以发现设备及其功能。通常,中间件提供执行服务发现的组件。 – Andrei

+0

如果我现在或五年后看一个家庭中的典型网络,是否会有任何设备正在使用该服务? –

0

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>