2016-01-05 47 views
1

我正在用C代碼寫一個應用程序,我需要獲取在特定子網上活動的所有設備的IP和MAC地址列表(特別是wifi子網)。 我發現了一個腳本文件,它使用nmap執行相同的操作,但是這個命令行工具在每臺機器上都不可用(需要單獨安裝)。下面是腳本文件的位置。如何獲取osx的子網中的活動IP和MAC地址列表

https://apple.stackexchange.com/questions/19783/how-do-i-know-the-ip-addresses-of-other-computers-in-my-network

是否有任何其他的方式來實現沒有時間延遲上述提到的,樣本代碼或命令將有所幫助。

在此先感謝。

我做了大量的研究,我在網上找到了一些答案,但沒有一個能夠幫助我達到預期的效果。

+0

如何在子網中爲每個IP地址運行廣播ping或ping? – alnet

+0

正如我在下面提到的廣播ping不服務於我的目的,並ping每個IP將需要更多的時間至少3分鐘,這將是我的應用程序要求太多 – Darshan

回答

2

在OSX中使用默認工具的簡單方法是使用ping xxx.xxx.xxx.255廣播IP,然後使用arp -a命令查看ARP表以查看子網中的可用計算機。

首先需要ping,然後查看arp表,因爲arp高速緩存表存儲與您有連接的計算機IP。

+0

就像在OP問題的答案鏈接? – trojanfoe

+0

@trojanfoe重要的是首先ping廣播IP,然後查看ARP表。但是,該鏈接既包含事實,也包含兩個事實。 –

+0

我嘗試了上面提到的方法,首先我清空了arp表,然後運行ping廣播IP,然後當我輸入arp時 - 結果是--- 192.168.90.255 ping statistics --- 127個數據包傳輸,127個數據包接收,+254個MAC:〜root#arp -a (192.168.90.1)at 94:10:3​​e: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

相關問題