Çok noktaya yayın DNS üzerinden bir IP'den makine adını nasıl alabilirim?


17

Bir ağdaki IP adreslerinin bir listesi var ve bunların çoğu çok noktaya yayın DNS'yi destekliyor. Yalnızca IP adresine sahip olmak yerine sunucu adını çözümleyebilmek istiyorum.

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

Çalışıyor, ancak IP'den bu adı belirleyebilmek istiyorum. Ayrıca, cihazların herhangi bir hizmeti yayınlaması gerekmez, ancak mDNS yayınını kesinlikle destekler. Yani servislere bakmak işe yaramaz.


1
Hangi işletim sistemini kullanıyorsunuz? mdns-scan linux için bir seçenek gibi görünüyor.
Zoredache

1
OS X, ancak linux çözümü alabilirsem, mac dünyasında bir analog bulabileceğime eminim. mdns-scan yayınlanmış servisleri arar, bu işe yaramaz. Bazı cihazlar herhangi bir hizmet yayınlamaz, ancak adlarıyla sorgulandığında adreslerini çözer.
Adam

Yanıtlar:


23

IP adreslerini zaten bildiğinizden, ilişkili ileri adresi almak için her IP adresi için ters girişi arayabilirsiniz:

$ 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

Kabuk komut dosyası dostu çıktılar için '+ short' kullanın:

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

Kullanım amacınıza bağlı olarak, sorguyu gerçekleştirmek için daha uygun bir yöntem olabilir. Daha fazla bilgiye ihtiyacınız olursa benimle iletişime geçmekten çekinmeyin.


2
Bunun neden herhangi bir Bonjour hizmeti çalıştırmayan bir iOS cihazında başarısız olabileceğine dair bir fikriniz var mı? Herhangi bir Bonjour hizmeti çalıştırmayan bir Mac'e karşı çalışır.
John Wright

arp-scanHomebrew veya macports'tan kurulu olarak hangi IP adreslerinin ağda olduğunu da öğrenebilirsiniz. Sadece ağ üzerindeki bilgisayarlar için bir fikir almak istiyorsanız Ya da, OS X üzerinde zaten komutunu kullanarak mevcut ARP masada görünebilir: arp. Özellikle, komutunu kullanabilirsiniz arp -n -i <interface> -l -anerede, <interface>sen (örneğin merak ettiğiniz arayüz ağın adı olmalıdır en0).
Parthian Shot

5

Linux'ta, libc'den getent komutunu kullanabilirsiniz:

getent hosts 192.168.0.52

Veya avahi-utils'i yükleyin ve çalıştırın

avahi-resolve-address 192.168.0.52

Paket avahi-toolsFedora'da ve bu sayfada işe
yarayan


-1

Bu konuda biraz daha araştırma yaptım ve mDNDS ve protokole baktığımda, bunun aslında mümkün olmadığı anlaşılıyor. Protokolde ad alımı için bir arama isteği vardır, bu nedenle bir ad istediğinizde uygun istemci yanıt verir, ancak bir IP için arama isteği yoktur. Adresler için de merkezi bir mağaza yok.

Bunu izlemek için çok fazla zaman harcadığım için, bu başka birine yardım umuyoruz.

Eğer bu konularda başka fikirleri varsa, onları duymayı seviyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.