我希望改进 mDNS 的 Go 库:https ://github.com/davecheney/mdns/
我和作者谈过,他只是说“我把它弄到了对我有用的地步”,这很好,完全符合开源精神。
他提到了 Avahi、Bonjour 和 dns-sd 发现工具无法找到他导出的服务的一些互操作性问题。
我希望了解 Avahi 在使用端口和简单名称进行简单服务时发布的记录。
我曾期望一个合适的版本:
dig @localhost .local -t AXFR
可能有 Avahi 导出它的区域,但它对我不起作用(提示“你做错了”!) - 我想了解典型 Avahi 服务导出的最少记录,并从自动检查相同从我笔记本上的 Apple 实现中导出Lee-Hambleys-Macbook.local
,我可能能够改进对 mDNS 的 Go lang 支持。
当其他人使用 Avahi/Bonjour/mDNS 时,他们使用什么工具来挖掘并检查事情是否按预期工作?
#avahi 的好心人很友好地给了我以下提示:
killall -USR1 avahi-daemon
这会导致avahi-daemon
将其区域文件转储到syslog
.
但理想情况下,我想知道如何最好地查询服务器,tcpdump
看起来也很有希望,但它仍然只显示被查找的记录,而不是区域中所有内容的完整转储:
sudo tcpdump dst port 53
Password:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on en0, link-type EN10MB (Ethernet), capture size 65535 bytes
09:43:28.883763 IP 192.168.178.41.50916 > resolver2.opendns.com.domain: 50479+ A? e3191.c.akamaiedge.net. (40)
09:43:29.046201 IP 192.168.178.41.61989 > resolver2.opendns.com.domain: 55378+ PTR? 251.0.0.224.in-addr.arpa. (42)
09:43:29.123784 IP 192.168.178.41.56659 > resolver2.opendns.com.domain: 26471+ A? p05-btmmdns.icloud.com.akadns.net. (51)
09:43:29.819277 IP 192.168.178.41.53504 > resolver2.opendns.com.domain: 32010+ PTR? 220.220.67.208.in-addr.arpa. (45)
09:43:47.379251 IP 192.168.178.41.50916 > resolver2.opendns.com.domain: 50479+ A? e3191.c.akamaiedge.net. (40)
09:43:55.900406 IP 192.168.178.41.60511 > resolver2.opendns.com.domain: 32846+ AAAA? lc22.prod.livefyre.com. (40)
09:44:04.115159 IP 192.168.178.41.50916 > resolver2.opendns.com.domain: 50479+ A? e3191.c.akamaiedge.net. (40)
^C
7 packets captured
3187 packets received by filter
0 packets dropped by kernel