Mdns

如何通過多播 DNS 從 IP 獲取機器名稱?

  • November 11, 2013

我有一個網路上的 IP 地址列表,其中大多數都支持多播 DNS。我希望能夠解析伺服器名稱,而不僅僅是 IP 地址。

ping computer.local
64 bytes from 192.168.0.52: icmp_seq=1 ttl=64 time=5.510 ms
64 bytes from 192.168.0.52: icmp_seq=2 ttl=64 time=5.396 ms
64 bytes from 192.168.0.52: icmp_seq=3 ttl=64 time=5.273 ms

有效,但我希望能夠從 IP 中確定該名稱。此外,這些設備不一定廣播任何服務,但肯定支持 mDNS 廣播。因此,通過服務查看是行不通的。

由於您已經知道 IP 地址,因此您可以查找每個 IP 地址的反向條目以獲取關聯的轉發地址:

$ dig -x 10.0.0.200 @224.0.0.251 -p 5353

; <<>> DiG 9.6.0-APPLE-P2 <<>> -x 10.0.0.200 @224.0.0.251 -p 5353
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54300
;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
200.0.0.10.in-addr.arpa. 10 IN  PTR atj-mbp.local.

;; ADDITIONAL SECTION:
atj-mbp._device-info._tcp.local. 10 IN  TXT "model=MacBookPro3,1"

;; Query time: 2 msec
;; SERVER: 10.0.0.200#5353(224.0.0.251)
;; WHEN: Sat Jun 26 07:53:44 2010
;; MSG SIZE  rcvd: 126

要獲得更友好的 shell 腳本輸出,請使用 ‘+short’:

$ dig +short -x 10.0.0.200 @224.0.0.251 -p 5353
atj-mbp.local.

根據您的預期案例,可能會有更合適的方法來執行查詢。如果您需要任何進一步的資訊,請隨時與我聯繫。

引用自:https://serverfault.com/questions/143184