2017-06-07 75 views
0

我正在開發一個項目,該項目將允許我的家庭自動化通過使用其MAC地址作爲標識符來識別誰在家中。使用節點js獲取客戶端的MAC地址

我試圖獲得使用和的NodeJS故宮模塊我自己的網絡上的客戶端的MAC地址「arped」

var arped = require('arped'); 

console.log(arped.table()); 

它讀取ARP表中雖然只輸出IP地址的福/ Mac電腦。有什麼我錯過了ARP或什麼?

輸出顯示我的路由器,我的chromecast,我的windows筆記本電腦和我的iPhone 4.它不顯示另一個Windows筆記本電腦和iPhone SE。

回答

0

從命令行運行時之後你會得到什麼:

arp -h 

你讓你從node.js中得到所有MAC或同一個列表? 你看不到的可能在不同的子網上,你不會得到它們的MAC地址。

+0

'arp ​​-h'不起作用,但是'arp ​​-a'確實有效,它顯示了我通過其他方式獲得的相同IP。 我在Ubuntu上的方式。 奇怪的是,它們都在同一個子網上。 – Paul

+0

你是對的,我錯誤的選項。您可能會在鏈接層上獲得一些分離。也許其中一些使用WiFi,其中一些通過電纜連接? –

+0

另請注意,arp表只包含您與之通信的設備的地址。嘗試ping到你看不到的設備,然後檢查arp表。它只是物理地址的緩存,所以你的電腦不需要一次又一次地請求它。它會像:你嘗試與遠程機器通信,你使用IP地址,然後你的網絡層將它發送到鏈路層,這需要將IP地址轉換成MAC地址。它通過在網絡上發送廣播消息並使用它得到的響應來完成。爲了減少廣播數量,計算機緩存了這樣的響應。在ARP表中。 –

相關問題