我想盡可能多地瞭解網絡上的物聯網設備。我看過代碼來枚舉設備,找到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地址這樣的信息。我的興趣是如何獲得有關設備的更多詳細信息。 –