我正在用C代碼寫一個應用程序,我需要獲取在特定子網上活動的所有設備的IP和MAC地址列表(特別是wifi子網)。 我發現了一個腳本文件,它使用nmap執行相同的操作,但是這個命令行工具在每臺機器上都不可用(需要單獨安裝)。下面是腳本文件的位置。如何獲取osx的子網中的活動IP和MAC地址列表
是否有任何其他的方式來實現沒有時間延遲上述提到的,樣本代碼或命令將有所幫助。
在此先感謝。
我做了大量的研究,我在網上找到了一些答案,但沒有一個能夠幫助我達到預期的效果。
我正在用C代碼寫一個應用程序,我需要獲取在特定子網上活動的所有設備的IP和MAC地址列表(特別是wifi子網)。 我發現了一個腳本文件,它使用nmap執行相同的操作,但是這個命令行工具在每臺機器上都不可用(需要單獨安裝)。下面是腳本文件的位置。如何獲取osx的子網中的活動IP和MAC地址列表
是否有任何其他的方式來實現沒有時間延遲上述提到的,樣本代碼或命令將有所幫助。
在此先感謝。
我做了大量的研究,我在網上找到了一些答案,但沒有一個能夠幫助我達到預期的效果。
在OSX中使用默認工具的簡單方法是使用ping xxx.xxx.xxx.255
廣播IP,然後使用arp -a
命令查看ARP表以查看子網中的可用計算機。
首先需要ping
,然後查看arp
表,因爲arp高速緩存表存儲與您有連接的計算機IP。
就像在OP問題的答案鏈接? – trojanfoe
@trojanfoe重要的是首先ping廣播IP,然後查看ARP表。但是,該鏈接既包含事實,也包含兩個事實。 –
我嘗試了上面提到的方法,首先我清空了arp表,然後運行ping廣播IP,然後當我輸入arp時 - 結果是--- 192.168.90.255 ping statistics --- 127個數據包傳輸,127個數據包接收,+254個MAC:〜root#arp -a (192.168.90.1)at 94:10:3e:4:1重複,0.0%數據包丟失 往返分鐘/ avg/max/stddev = 0.183/8.220/341.990/25.879 ms Mac: a9:d2 on en0 ifscope [ethernet] (192.168.90.100)at 28:e3:47:9:72:ae on en0 ifscope [ethernet] (192.168.90.255)在ff:ff:ff:ff:ff: ff on en0 ifscope [ethernet] 此外,它花費的時間與我的要求不符。 – Darshan
如何在子網中爲每個IP地址運行廣播ping或ping? – alnet
正如我在下面提到的廣播ping不服務於我的目的,並ping每個IP將需要更多的時間至少3分鐘,這將是我的應用程序要求太多 – Darshan