iOS应用程序Fing如何获取MAC地址?

9
我知道自iOS 7以来,苹果已经停止了MAC地址API。但我刚刚发现Fing应用程序可以获取MAC地址。这是怎么发生的?
如果我使用类似的方法来获取MAC地址,iTunes审核是否允许?
顺便说一句:如何以编程方式获取iOS设备的MAC地址并没有真正帮助我。我需要MAC地址,而不是[UIDevice identifierForVendor]。 Fing app

感谢@Paulw11!ARP扫描是一个大项目吗?因为我需要在我的应用程序中实现MAC地址功能。然而,我们没有关于iOS设备上的ARP的经验,并且我们接近截止日期。 - Yi Jiang
你需要实现一些相当低级的代码 - 并记住如果设备未连接到WiFi,则它将无法工作。这里有一些建议 - https://dev59.com/1WPVa4cB1Zd3GeqP4lEw 和 https://dev59.com/4kvSa4cB1Zd3GeqPgrqR - Paulw11
@Paulw11 如果您回答了这个问题,我会接受您的答案。谢谢! - Yi Jiang
@NirmitDagly 右上角的机器名称。右下角的机器供应商。 - Yi Jiang
1
@NirmitDagly,最近我深入研究了Fing应用程序的内部。使用tcpdump工具捕获Fing的数据包后,我在NBNS(NetBIOS名称服务)中找到了机器名,我的MBP的名称是ZHANGCHONG02。因此,您可以通过NBSN发送名称查询。希望以上内容对您有所帮助。 - Viton Zhang
显示剩余3条评论
3个回答

3
Fing只能在设备连接到WiFi网络时获取该设备的MAC地址。我怀疑它在本地网络上执行ARP扫描,并匹配已知的本地IP地址以确定本地MAC地址。
关于捕获ARP数据的一些问题可以在此处这里找到。

3

Fing的作用是对网络上的每个IP地址进行ping测试,并构建ARP缓存,然后从ARP缓存表中读取Mac地址。


1

半年后,我自己的答案如下。

从技术上讲,可以在iOS设备上检查ARP表以获取iOS设备的MAC地址。参见此处: 如何查询iPhone上的ARP表?

然而,应用商店会因此拒绝您的应用。但是,人们说获取主机、路由器和其他设备的MAC地址是可以的。我还没有证明它是否正确。


你的意思是说使用这段代码来执行 arp -a 会导致你的应用被拒绝吗? - BlackM
@BlackM 人们说你将使用的库不是原生的iOS库。它作为第三方库被禁止使用。而且,获取本地MAC地址违反了iOS的原则,即不公开用户的唯一设备ID。这涉及到信息安全和隐私问题。 - Yi Jiang
我不是在谈论本地MAC地址,而是在谈论局域网上的其他MAC地址。 - BlackM
好的,我认为获取其他设备的MAC地址就可以了。 - Yi Jiang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接