2011-11-17 52 views
2

我試圖獲取連接到我的無線接入點(這是在計算機本身上運行)的所有設備的mac地址。 到目前爲止,我已經看過TCPConnectionInterface類和NetworkInterface類,但不能找到任何用於檢索此信息的方法 。 我也嘗試過ManagedWiFi API,但這似乎只顯示有關無線網絡的信息。獲取連接到WLAN路由器的所有設備的MAC地址在C#

我願做這樣的事情:

foreach (ConnectedDevice device : MyWirelessAccessPoint.getDevices()) { 
    Console.writeline(device.getMacAddress()); 
} 

這是如何得來有什麼建議?

+0

顯然所有路由器都是不同的,所以你要麼需要一個專用的API來自制造商,或者您可以使用SNMP。除此之外,也許你可以刮網管理界面。 –

+0

如果它在你的計算機上運行,​​也許你很幸運,實現A.P.(我假設它是第三方)的軟件保存一個文件(或註冊表項)與MAC。遠射,但你可以看看它。 – Vlad

+0

如果接入點是一個專用設備,就像linksys接入點或其他設備一樣,這將是真實的。但是,我們在計算機上運行軟件訪問點,所以對我來說,這將使得獲取連接設備列表變得更加容易。或不? – user1022425

回答

0

我知道這是不是在告訴你如何做到這一點非常有幫助的,但我建議你看一下如何檢索您的機器的「ARP​​高速緩存」。

網絡上的每臺計算機都維護着自己的arp緩存,它將MAC地址映射到IP地址。由於您的機器實際上充當無線接入點,我猜測您可以確定您的機器的arp緩存是最新的。

編輯:GetIpNetTable Windows API函數看起來很有希望:http://msdn.microsoft.com/en-us/library/aa365956(v=VS.85).aspx

EDIT2:還有,你可能要參考這個問題:How do I access ARP-protocol information through .NET?

相關問題