我正在尝试检测连接到无线网络的 Apple 设备。使用 Bonjour 相对简单,但我也在尝试检测它是什么类型的设备。比如,MacBook Air、MacBook Pro、MacPro、iPhone、iPod 或 iPad。
我发现对 MacBook 和 MacPro 的 Bonjour 请求包括对包含模型的查询的“附加部分”响应:
;; 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 地址