2011-05-28 184 views
3

可能重複:
how to find MAC address in MAC OS X programmatically ?
How do I query the ARP table on iPhone?獲取另一臺計算機的MAC地址,因爲它的IP地址

我怎樣才能得到另一臺設備或計算機的MAC地址,如果我知道它的IP地址?

比如我有:

NSString * ip = @"192.168.1.1"; 
+0

糾正我,如果我錯了,但MAC地址分配給您的網絡接口硬件,並沒有任何關於局域網IP。 – raidfive 2011-05-28 18:37:49

+0

@raidfive我想他想要分配IP地址的網絡接口硬件的MAC地址。例如,我通過以太網和Wi-Fi連接到我的網絡,都使用唯一的IP和唯一的MAC地址。 – 2011-05-28 18:39:42

+0

是的,MAC分配給硬件,但我認爲有一些方法可以將其與objective-c相提並論。我知道如何用c#輕鬆做到這一點。 – 2011-05-28 18:42:39

回答

1

你要查找ARP(地址解析協議)表的本地網絡。在終端窗口中,您可以在命令行上執行arp -a,它將打印出顯示本地網絡IP地址及其物理地址關聯(MAC地址)的ARP表。 OSX將ARP條目存儲在系統路由表中,但我找不到任何可以顯示如何將系統路由表中的條目轉換爲MAC地址的好引用:我打賭某個地方有一個sysctl調用,但是誰知道?有一個在Getting routing table on MACOSX (programmatically)一個沒有答案的問題,可以幫助,但...

在OSX中,arp細節是http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man4/arp.4.html:我誠實地建議只是做了system電話和過濾爲您所需的IP地址的結果。

+0

我忘了告訴,我需要從iOS設備解析mac。 – 2011-05-28 19:42:10

+0

是的,你可能運氣不好:不確定你有沒有從iOS平臺上的客戶端代碼訪問系統路由表,我敢肯定沒有辦法調用'arp'命令行客戶端從iOS應用程序。 – Femi 2011-05-28 19:50:08