当我的iphone连接到WiFi网络时,我会ping网络上的每个IP并构建ARP缓存,然后从ARP缓存表中读取MAC地址,如this。 它在ios 10之前运行良好,但是当我在ios 10机器上运行此代码时,我无法获得正确的MAC地址,总是返回02:00:00:00:00:00!但它可以在iPhone 7模拟器上运行良好!我不知道它是怎么发生的! ARP API有什么变化吗?
答案 0 :(得分:0)
如果您要识别设备,Apple建议使用 identifierForVendor 。可能是你设法获得iOS 7至iOS 9之后的MAC地址,但未来版本不保证。所以最好使用Apple推荐的identifierForVendor。这是Apple的iOS 7发行说明。
在iOS 7及更高版本中,如果您要求提供iOS设备的MAC地址, 系统返回值02:00:00:00:00:00。如果你需要 识别设备,使用UIDevice的identifierForVendor属性 代替。 (需要自己广告标识符的应用 目的应该考虑使用的advertisingIdentifier属性 而是ASIdentifierManager。)