【问题标题】:How does iOS app Fing get MAC Address?iOS 应用 Fing 如何获取 MAC 地址?
【发布时间】:2015-01-21 19:50:59
【问题描述】:

我知道苹果自 iOS 7 起就停止了 MAC 地址 API。但我刚刚发现应用 Fing 可以获取 MAC 地址。怎么会发生?

如果我使用samillar方式获取MAC地址,iTunes审核是否允许?

顺便说一句:How to get iOS device MAC address programmatically 并没有真正的帮助。我需要 MAC 地址,而不是 [UIDevice identifierForVendor]。

【问题讨论】:

  • Find 只能在设备连接到 WiFi 网络的情况下获取设备的 MAC 地址。我怀疑它在本地网络上实现了 ARP 扫描并匹配已知的本地 IP 地址以确定本地 MAC 地址
  • 谢谢@Paulw11! ARP扫描是一个大项目吗?因为我需要在我的应用程序中实现 MAC 地址功能。但是,我们没有关于 iOS 设备上 ARP 的经验,而且我们已经接近最后期限。
  • 您必须实现一些相当低级的代码 - 请记住,如果设备未连接到 WiFi,它将无法工作。这里有一些建议 - stackoverflow.com/questions/10395041/… 和这里 - stackoverflow.com/questions/2189200/…
  • @Paulw11 如果你回答这个问题,我会接受你的回答。谢谢!
  • @NirmitDagly,我最近在挖掘 Fing App 的内部。使用 tcpdump 工具捕获 Fing 的数据包后。我在 NBNS(NetBIOS 名称服务)中找到了机器名称,我的 MBP 的名称是 ZHANGCHONG02 例如.因此,您可以通过 NBSN 发送名称查询。希望以上内容对您有所帮助。

标签: ios iphone ios7


【解决方案1】:

只有当设备连接到 WiFi 网络时,Fing 才能获取设备的 MAC 地址。我怀疑它在本地网络上实现了 ARP 扫描,并匹配已知的本地 IP 地址以确定本地 MAC 地址。

有一些关于捕获ARP数据herehere的问题

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      这是我半年后自己的答案。

      从技术上讲,可以检查 iOS 设备上的 ARP 表以获取 iOS 设备 MAC 地址。看到这个: How do I query the ARP table on iPhone?

      但是,App Store 会因此拒绝您的应用。但是,人们说获取主机,路由器和其他设备的MAC地址就可以了。我还没有证明。

      【讨论】:

      • 你是什么意思拒绝这个应用程序?如果您将此代码用于arp -a,您的应用将被拒绝?
      • @BlackM 人们说您将使用的库不是本机 iOS 库。它被禁止作为第三方库。而且,获取本地 MAC 地址违反了 iOS 的原则,即不公开用户的唯一设备 ID。它与信息安全和隐私问题有关。
      • 不,我说的不是本地 MAC 地址,而是局域网上的其他 MAC 地址
      • 嗯,我想获取其他设备MAC地址就可以了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多