我想尽可能多地了解网络上的物联网设备。我看过代码来枚举设备,找到IP地址和MAC地址,但我还能找到什么?特别是,我想知道什么是灯,更重要的是,制造商是什么。发现网络上的物联网设备
我一直在寻找IoTivity和AllJoyn的一些文档以及各种零配置协议。据我所知,这些东西更关心的是暴露的服务,而不是设备的内容。
我误解了吗?有什么方法可以绘制出本地网络,并确切知道每个设备是什么?
我想尽可能多地了解网络上的物联网设备。我看过代码来枚举设备,找到IP地址和MAC地址,但我还能找到什么?特别是,我想知道什么是灯,更重要的是,制造商是什么。发现网络上的物联网设备
我一直在寻找IoTivity和AllJoyn的一些文档以及各种零配置协议。据我所知,这些东西更关心的是暴露的服务,而不是设备的内容。
我误解了吗?有什么方法可以绘制出本地网络,并确切知道每个设备是什么?
AllJoyn提供About Announcement服务,通过它,你可以让你在找什么:
好的,这就是我要找的。所以在我看来,我在网络上找到的每一台设备都可以查询这些信息。 *如果*该设备支持AllJoyn,那么我免费。这是正确的吗?还有其他协议可以检查吗?我也知道HNAP,但这似乎是一个古老的协议,主要是路由器。 –
我不知道HNAP。所以,在这方面我对你毫无用处。关于AllJoyn,是的,你是对的。正如上面提到的链接中所述,AllJoyn设备提供的服务可以使用“关于公告服务”自行发布。 AllJoyn客户端设备可以通过监听关于公告服务来发现AllJoyn服务器设备。一旦他们发现了足够的服务,他们就可以连接到它。 值得注意的是,AllJoyn提供了[其他有价值的服务](https://allseenalliance.org/developers/learn/base-services),可以轻松整合邻近的设备。 – Younes
HNAP是一个由Linksys购买的公司开发的约15年前的协议。它使得识别网络上的设备变得非常容易,并且给了我想要的东西,但实际上并没有太多用处。 –
首先查看DPWS(用于Web服务的设备配置文件)。这是我们服务标准(例如,WSDL或SOAP)的一个子集,它允许与运行在嵌入式设备上的Web服务进行最小限度的交互。通常交换的消息,而使用这样的服务包含可以告知您的元数据:
要使用你需要一个控制层,其提供了一定的抽象到这些设备这些设备。这个层被称为中间件。我建议你看看SOCRADES。这是一个欧盟项目,我相信他们的源代码应该放在他们的专用网站上。
我提到SOCRADES,因为它具有可以强制网络安装的功能。可以使用DPWS配置文件在这些设备上安装新服务,并假设它们具有某些通信和计算功能。
其他中间件的例子有:OpenIot,Choreos,Ubiware等。所有这些中间件都是开源的。现在,在这些中间件的基础上构建应用程序。这是你想用这些设备做什么。
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>
这与常规网络扫描没有任何区别,目的是列出本地网络上或任意IP范围内的所有IP寻址设备。这可能会被ISP或网络管理员禁止。 –
我真的在谈论家庭网络,所以真的不应该有任何阻止你这样做的事情。是的,这是一个常规的网络扫描,很容易获得像IP地址这样的信息。我的兴趣是如何获得有关设备的更多详细信息。 –