获取另一台计算机的MAC地址,因为它的IP地址

问题描述:

可能重复:
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

你要查找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