macos - 如何获取联网设备(可能使用 Bonjour)的 "model name"?

标签 macos networking bonjour

Apple 的 Finder.app 能够一致地确定每台使用 bonjour 的物理计算机的确切型号(每个设备类型的图标都是唯一的即可证明:iMac、MacPro、MBP 等)。他们如何做到这一点以及他们使用哪些 API?

顺便说一句,Bonjour 为网络上的所有服务提供名称、服务类型、域和端口 - 但我无法找到有关如何查找设备型号本身的信息。

最佳答案

我相信这使用了_device-info._tcp。 IP 地址的 mDNS 记录。你可以亲自看看这个。在终端中,您可以使用 dig @224.0.0.251 -p5353 执行 mDNS 请求。您可以使用 dig @224.0.0.251 -p5353 Foo.local. 解析计算机 Foo.local 的 IP 地址。获取该 IP 并将其插回到 dig @224.0.0.251 -p5353 -x $IP 中,您应该会看到类似以下内容的内容:

> dig @224.0.0.251 -p5353 -x 10.0.1.1
; <<>> DiG 9.6.0-APPLE-P2 <<>> @224.0.0.251 -p5353 -x 10.0.1.1
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22887
;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; QUESTION SECTION:
;1.0.0.10.in-addr.arpa.     IN  PTR

;; ANSWER SECTION:
1.0.0.10.in-addr.arpa.  10  IN  PTR Foo.local.

;; ADDITIONAL SECTION:
Foo._device-info._tcp.local. 10 IN TXT  "model=MacBookPro5,3"

;; Query time: 4 msec
;; SERVER: 10.0.0.1#5353(224.0.0.251)
;; WHEN: Mon Nov 29 18:00:23 2010
;; MSG SIZE  rcvd: 131

注意附加部分。

不幸的是,我不知道如何使用 Bonjour API 获取此信息。

编辑:您还可以使用 dig @224.0.0.251 -p5353 Foo._device-info._tcp.local 在单个查询中获取此信息。 TXT.

关于macos - 如何获取联网设备(可能使用 Bonjour)的 "model name"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4309740/

相关文章:

linux - 我如何开始制作我自己的简单的基于 UNIX 的网络扫描仪?

java - 以高压缩率通过网络发送文本文件

swift - Bonjour Discovery 的 RxSwift 和嵌套订阅

android - Bonjour/ZeroConf Android (HoneyComb) 实现

iphone - 如何让 mp3 文件在 iPhone Safari 网络浏览器中播放?

python - 安装 X 协议(protocol)以使用 mysql shell - Mac

sockets - 接受套接字后会发生什么? [复制]

iphone - 我们如何检测 iPhone SDK 中 wifi 是否不可用

html - 滚动时页面顶部出现白条

iphone - iOS/iPhone 用户关于重复 NSNotification 观察的警告