【问题标题】:any way to detect iPads or iPhones on wireless network? bonjour?有什么方法可以在无线网络上检测 iPad 或 iPhone?你好?
【发布时间】:2011-11-24 07:08:15
【问题描述】:

我正在尝试检测连接到无线网络的 Apple 设备。使用 Bonjour 相对简单,但是我也在尝试检测它是什么类型的设备。例如,MacBook Air、MacBook Pro、MacPro、iPhone、iPod 或 iPad。

我发现 Bonjour 对 MacBook 和 MacPros 的请求包括对包含模型的查询的“附加部分”响应:

;; ADDITIONAL SECTION:
Q9550._device-info._tcp.local. 10 IN    TXT "model=MacPro3,1"

;; ADDITIONAL SECTION:
Air._device-info._tcp.local. 10 IN  TXT "model=MacBookAir4,2"

通过对 iPhone(3GS 和 4)、iPod touch 和 iPad2 的测试,所有的 iDevice 都只用它们的名字来响应:

;; ANSWER SECTION:
111.1.168.192.in-addr.arpa. 10  IN  PTR gmPad2.local.

显然,名称可能无法反映设备。因此,我不想尝试从名称中推断设备的类型。有谁知道检测 iDevice 类型的其他方法吗?


编辑:为了清楚起见,我使用的命令是:dig @224.0.0.251 -p5353 -x 192.168.1.111 ... 替换 Apple 设备的 IP 地址

【问题讨论】:

  • 我想知道是否有办法使用mac地址来做到这一点?肯定有供应商前缀列表,可以为您提供 Apple Inc,(抱歉不如 MDNS 有用),但我想知道您是否可以找到或建立更详细的列表来帮助您进入设备级别。
  • 如果您不需要 100% 可靠的信息,那么使用该名称似乎不是一个坏主意。据我所知,99% 的用户保留设备名称“用户的 iPad/iPod/iPhone”等。
  • 使用 +short 仅吐出客户端 ID 而不使用其他措辞,例如:dig +short -x 192.168.1.2 @224.0.0.251 -p 5353

标签: ios bonjour discovery


【解决方案1】:

使用端口 62078

我见过的最可靠的指标是你是否可以连接到IP端口62078。

端口 62078 用于“iphone-sync”服务,我认为 MacBook 不会使用它。这个端口似乎总是对我们(非常小的)网络上的 iPhone 和 iPad 开放。

可能(但不太可能)您可以向端口发送消息以了解更多详细信息...

我认为官方的 xml 端口分配列表在这里,虽然它现在对我不起作用: http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml

MAC 地址

理论上,MAC 地址可能会有所帮助 - 但可能没有多大用处,除非您能找到维护可靠范围列表的地方(例如网络安全公司或硬件提供商)。 MAC 地址确实取决于使用的实际芯片(或闪存 MAC)。数据库处于组织级别(尽管组织有时会选择为特定设备使用特定范围)。

http://standards.ieee.org/develop/regauth/oui/public.html 允许您下载“组织唯一标识符”的数据库,或者您可以查找“Apple”,或 MAC 地址的前三个字节,例如00264A.

有趣的是,MAC 查找不起作用...我的 iPad MAC 的前三位数字是 28-68-BA,但什么都没有。

用户代理

可能没用,但如果您可以查看网络流量或拥有 http 代理,那么用户代理字符串可能会有所帮助(请参阅 http://developer.apple.com/library/IOS/documentation/AppleApplications/Reference/SafariWebContent/OptimizingforSafarioniPhone/OptimizingforSafarioniPhone.html#//apple_ref/doc/uid/TP40006517-SW3)。

编辑(添加):

Apple 的 Bonjour 协议依赖于在 UDP 端口 5353 上运行的多播 DNS (mDNS),并向这些保留的组地址发送:IPv4 组地址 - 224.0.0.251、IPv6 组地址 - FF02::FB - reference

这将有助于在 Apple 设备通过侦听 5353 UDP 上的多播消息连接到本地网络(链接本地)时获得推送通知。也许嗅探数据包,看看它是否有任何额外的信息:)

虽然我认为 Bonjour API 也允许看到这个...

【讨论】:

    【解决方案2】:

    您也可以使用机场实用程序手动执行此操作:

    1) 打开 AirportUtility 2)转到“无线客户端”(将鼠标悬停在箭头上并单击它) 3) 前往 DHCP Clients,您将看到 iPad、iPhone、计算机名称等......作为 Client ID 列。

    【讨论】:

      猜你喜欢
      • 2019-10-02
      • 1970-01-01
      • 1970-01-01
      • 2013-05-24
      • 1970-01-01
      • 2021-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多