ios – 在无线网络上检测iPad或iPhone的任何方式?你好?

我试图检测连接到无线网络的苹果设备.这是相对简单的使用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来看,所有的iDevices只能以他们的名字做出回应:

;; 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 …替换苹果设备的IP地址

解决方法

使用端口62078

我看到的最可靠的指标是您是否可以连接到IP端口62078.

端口62078用于“iphone-sync”服务,我不认为MacBooks使用它.这个端口总是对我们(非常小的)网络上的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也允许看到这个…

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...