iOS-您的实际住址是什么?

如果您问与IT无关的人,“您的实际地址是什么?”,他们可能会告诉您他们房屋的地址。 但是,在本文中,我们将讨论本地网络上的MAC地址以及如何使用iOS检索它们。

ARP表和API

因此,当我意识到Apple没有为我们提供访问iOS设备的ARP(地址解析协议)表的API时,我正在尝试为我的项目(IT Buddy)开发网络扫描仪。

在Google和StackOverflow上花费了大量时间后,我想出了自己的完整解决方案,希望与您分享。

获取必要的文件

首先,您需要将Mac OS X中的某些文件复制到Xcode项目中。 转到/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include (其中MacOSX10.11.sdk是您的Mac OS版本,例如MacOSX10.10。 sdk)。

然后从“ net”文件夹中将 n拖放route.h,if_arp.h,if_types.h并将if_ether.h从“ netinet”文件夹中拖放到您的Xcode项目中。 选择“ 根据需要复制项目 ”。

现在我们需要编辑“ if_ether.h ”。 找到该行“ #include ”,并将其替换为“ #include“ if_arp.h”

然后导入MacFinder.h:

和MacFinder.m:

使用MacFinder

将MacFinder.h导入控制器后,您可以使用以下代码获取网络中任何IP的MAC地址:

  NSString * mac = [MacFinder ip2mac:” 192.168.10.24“]; 

NSLog(@“ Mac:%@”,mac);

如果您在文件或实现方面遇到问题,可以在此处下载完整的项目。