是否可以获得SSID&应用程序中当前连接的WiFi网络的MAC地址

时间:2013-05-09 20:34:30

标签: iphone ios xcode mac-address ssid

我正在寻找一种方法来获取我项目中当前连接的WiFi网络的MAC地址和SSID。我已经使用Tony Million's Reachability来确定用户何时在WiFi网络上,并且正在测试Kenial's NICInfo,但却发现它只提供了iPhone的WiFi MAC地址。虽然这两个项目都以自己的方式帮助很大,但他们没有完成工作。 我想知道是否有公共API(对于某些Apple App Approval)或某些后门来实现此目的。

1 个答案:

答案 0 :(得分:11)

这涉及一些不同的事情:

  1. 获取SSID - 这与MAC地址问题无关。为此,请查看此答案:iPhone get SSID without private library。我不知道从其他答案重新发布代码的礼仪是什么,所以我只是链接。

  2. 获取MAC地址 - 因为大部分网络都在第3层(称为,谁会猜到,网络层 - http://en.wikipedia.org/wiki/OSI_model)和MAC地址位于第2层(数据)链接层)您首先需要获取WiFi接口网关的IP地址。只是旁注 - 问题应该被表述为“我如何获得当前连接的WiFi网络的SSID和WiFi路由器/网关的MAC地址”。 Anywho,要获得网关地址,请参阅此SO答案:How to get the WIFI gateway address on the iPhone?

    完成后,您需要使用ARP(地址解析协议,它是所有网络用于将IP地址转换为MAC地址的协议)将其转换为MAC地址。网络接口不通过IP进行通信,它们通过MAC进行通信,因此实际上这种情况在任何地方都会发生。实际上,在PC / Mac上访问ARP表非常容易。对于iOS,我发现这个SO答案将IP地址转换为MAC地址:Getting ARP table on iPhone/iPad