【发布时间】: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