Mam listę adresów IP w sieci i większość z nich obsługuje DNS multiemisji. Chciałbym móc rozpoznać nazwę serwera zamiast mieć tylko adres 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
Działa, ale chciałbym móc określić tę nazwę na podstawie adresu IP. Również urządzenia niekoniecznie transmitują jakiekolwiek usługi, ale zdecydowanie obsługują transmisję mDNS. Dlatego przeglądanie usług nie będzie działać.
Odpowiedzi:
Ponieważ znasz już adresy IP, możesz wyszukać odwrotny wpis dla każdego adresu IP, aby uzyskać powiązany adres przekazania:
Aby uzyskać wyniki bardziej przyjazne skryptom powłoki, użyj „+ short”:
W zależności od zamierzonego przypadku użycia może być bardziej odpowiednia metoda wykonania zapytania. Jeśli potrzebujesz dodatkowych informacji, skontaktuj się ze mną.
źródło
arp-scan
zainstalowanego z homebrew lub macports. Lub jeśli po prostu chcesz poczuć hostów w sieci, można spojrzeć na bieżącej tabeli za pomocą polecenia ARP już na OS X:arp
. W szczególności możesz użyć poleceniaarp -n -i <interface> -l -a
, gdzie<interface>
powinna być nazwa interfejsu sieciowego, który Cię interesuje (npen0
.).W systemie Linux możesz użyć polecenia getent z libc:
Lub zainstaluj avahi-utils i uruchom
źródło
avahi-tools
w Fedorze i to jedyna rzecz na tej stronie, która zadziałała :)To wydaje się działać:
Od zabawy z DNS multiemisji
źródło
Cóż, zrobiłem o wiele więcej badań na tym, a patrząc na mDNDS i protokół, wygląda na to, że tak naprawdę nie jest to możliwe. Protokół żąda wyszukania w celu pobrania nazwy, więc gdy poprosisz o nazwę, odpowiedni klient odpowie, ale nie ma żądania adresu IP. Nie ma też centralnego sklepu z adresami.
Mam nadzieję, że pomoże to komuś innemu, ponieważ spędziłem zbyt wiele czasu na śledzeniu tego.
Jeśli ktoś ma jakieś inne pomysły na ten temat, chętnie je usłyszę.
źródło