jak znaleźć nazwę hosta z adresu IP bez logowania się do hosta

128

Muszę znaleźć nazwę hosta UNIX, którego adres IP jest znany, bez logowania się do tego hosta UNIX

user75536
źródło
19
NBTSTAT -A 10.10.10.10 dla Windows
Kanagavelu Sugumar
2
Czy kiedykolwiek zaakceptujesz odpowiedź?
Paolo Stefan
2
@PaoloStefan, jeśli użytkownik był ostatnio widziany w 2009 roku, jest to wysoce nieprawdopodobne wydarzenie
Boris Treukhov
Czy to odpowiada na twoje pytanie? Jak uzyskać nazwę hosta z adresu IP (Linux)?
Ilya Kharlamov

Odpowiedzi:

165

Użyj nslookup

nslookup 208.77.188.166 
...
Non-authoritative answer:
166.188.77.208.in-addr.arpa     name = www.example.com.
vartec
źródło
2
w przypadku instalacji centos musisz sudo yum install bind-utilsnajpierw uruchomić . spowoduje to zainstalowanie wyszukiwania nslookup
lfender6445,
nslookup jest przestarzałe. Możesz zamiast tego użyć „dig” lub „host”
P. Barbadew
75

Możesz również wykonać odwrotne wyszukiwanie DNS host. Po prostu podaj adres IP jako argument:

$ host 192.168.0.10
server10 has address 192.168.0.10

źródło
44

Narzędzie innego NS lookup, które mogą być wykorzystywane do wyszukiwania jest odwróconą digz -xopcji:

$ dig -x 72.51.34.34

; <<>> DiG 9.9.2-P1 <<>> -x 72.51.34.34
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12770
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1460
;; QUESTION SECTION:
;34.34.51.72.in-addr.arpa.      IN      PTR

;; ANSWER SECTION:
34.34.51.72.in-addr.arpa. 42652 IN      PTR     sb.lwn.net.

;; Query time: 4 msec
;; SERVER: 192.168.178.1#53(192.168.178.1)
;; WHEN: Fri Jan 25 21:23:40 2013
;; MSG SIZE  rcvd: 77

lub

$ dig -x 127.0.0.1

; <<>> DiG 9.9.2-P1 <<>> -x 127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11689
;; flags: qr aa ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

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

;; ANSWER SECTION:
1.0.0.127.in-addr.arpa. 10      IN      PTR     localhost.

;; Query time: 2 msec
;; SERVER: 192.168.178.1#53(192.168.178.1)
;; WHEN: Fri Jan 25 21:23:49 2013
;; MSG SIZE  rcvd: 63

Cytując ze strony podręcznika dig :

Wyszukiwanie wsteczne - mapowanie adresów na nazwy - jest uproszczone przez opcję -x . addr to adres IPv4 w notacji dziesiętnej z kropkami lub adres IPv6 rozdzielany dwukropkami. Gdy ta opcja jest używana, nie ma potrzeby podawania argumentów nazwy, klasy i typu. dig automatycznie wyszukuje nazwę taką jak 11.12.13.10.in-addr.arpa i ustawia typ zapytania i klasę odpowiednio na PTR i IN.

Król Drozdobrody
źródło
27

W systemie Windows ping -a 10.10.10.10

skm_satish
źródło
17
  • W przypadku systemu Windows spróbuj:

    NBTSTAT -A 10.100.3.104
    

    lub

    ping -a 10.100.3.104
    
  • W przypadku systemu Linux spróbuj:

    nmblookup -A 10.100.3.104
    

Są prawie takie same.

Deepak Verma
źródło
2
nmblookup działało świetnie, nie próbowałem znaleźć nazwy hosta serwera WWW, ale komputery, które robiły rzeczy, których nie powinny. To ujawniło nie tylko nazwę hosta Windows, ale także adres Mac, który był następny na mojej liście!
FreeSoftwareServers
10
python -c "import socket;print(socket.gethostbyaddr('127.0.0.1'))"

jeśli potrzebujesz tylko nazwy, bez dodatkowych informacji, dodaj [0] na końcu:

python -c "import socket;print(socket.gethostbyaddr('8.8.8.8'))[0]"
Ilya Kharlamov
źródło
Mówi, nieprawidłowe gniazdo podświetlania składni.
Sandeep Roy
1
dla pythona3 zmień print na funkcję z nawiasami:python -c "import socket;print(socket.gethostbyaddr('10.16.7.10'))"
Corey Goldberg
7

To zależy od kontekstu. Myślę, że masz na myśli nazwę hosta systemu operacyjnego (zwracaną hostnamepo zalogowaniu). To polecenie dotyczy tylko nazw wewnętrznych , więc zapytanie o nazwę komputera wymaga różnych systemów nazewnictwa. Istnieje wiele systemów, które używają nazw do identyfikacji hostów, w tym DNS, DHCP, LDAP (DN) hostnameitp., A wiele systemów używa zeroconf do synchronizowania nazw między wieloma systemami nazewnictwa. Z tego powodu wyniki z hostnameczasami będą pasować do wyników z dig(patrz poniżej) lub innych systemów nazewnictwa, ale często nie będą pasować.

DNS jest zdecydowanie najpowszechniejszy i jest używany zarówno w Internecie (np. google.com. A 216.58.218.142), Jak iw domu (mDNS / LLMNR), więc oto jak wykonać odwrotne wyszukiwanie DNS : dig -x <address>( nslookupi hostsą prostsze, zawierają mniej szczegółów i mogą nawet zwracać inne wyników; jednak dignie jest dołączony do systemu Windows).

Pamiętaj, że nazwy hostów w ramach CDN nie będą tłumaczone na kanoniczną nazwę domeny (np. „Google.com”), ale raczej nazwę hosta adresu IP hosta, o który pytałeś (np. „Dfw25s08-in-f142.1e100.net”; interesująca ciekawostka: 1e100 to 1 googol).

Należy również pamiętać, że hosty DNS mogą mieć więcej niż jedną nazwę. Jest to typowe dla hostów z więcej niż jednym serwerem internetowym (hosting wirtualny), chociaż staje się to mniej powszechne ze względu na rozprzestrzenianie się technologii wirtualizacji. Te hosty mają wiele rekordów DNS PTR .

Na koniec należy zauważyć, że rekordy hosta DNS mogą zostać zastąpione przez maszynę lokalną za pośrednictwem / etc / hosts . Jeśli nie otrzymujesz oczekiwanej nazwy hosta, sprawdź ten plik.

Nazwy hostów DHCP są odpytywane w różny sposób w zależności od tego, które oprogramowanie serwera DHCP jest używane, ponieważ (o ile wiem) protokół nie definiuje metody zapytań; jednak większość serwerów umożliwia to w jakiś sposób (zwykle za pomocą konta uprzywilejowanego).

Uwaga Nazwy DHCP są zwykle synchronizowane z serwerami DNS, więc często widzi się te same nazwy hostów w tabeli najmniejszych klientów DHCP oraz w rekordach A serwera DNS (lub AAAA dla IPv6). Ponownie, jest to zwykle wykonywane jako część zeroconf.

Należy również zauważyć, że tylko dlatego, że istnieje dzierżawa DHCP dla klienta, nie oznacza, że ​​jest on nadal używany.

NetBIOS dla TCP / IP (NBT) był używany przez dziesięciolecia do rozpoznawania nazw, ale od tego czasu został zastąpiony przez LLMNR do rozpoznawania nazw (część zeroconf w systemie Windows). W przypadku tego starszego systemu można nadal przesyłać zapytania za pomocą nbtstat(Windows) lub nmblookup(Linux).

Johntron
źródło
@John Syrinek Czy możesz bardziej szczegółowo zapoznać się z zapytaniem o nazwy hostów DHCP? Chcę zapytać o nazwę hosta innej maszyny (w tej samej sieci WLAN) przez IP, czy to możliwe?
jfly
2

Pozostałe odpowiedzi są poprawne - użyj odwrotnego wyszukiwania DNS. Jeśli chcesz to zrobić za pomocą języka skryptowego (Python, Perl), możesz użyć API gethostbyaddr.

Mosze
źródło
0

Jeśli szukasz komputera z systemem Windows, wypróbuj poniższe polecenie:

nbtstat -a 10.228.42.57
Gyana Ranjan
źródło
-1

W większości przypadków polecenie traceroute działa dobrze. Polecenia nslookup i host mogą zakończyć się niepowodzeniem.

Bieg
źródło
4
to jest złe: mając adres IP, jedyną rzeczą do zrobienia jest odwrotne zapytanie do DNS. Dlatego traceroute nie jest właściwym narzędziem do sugerowania.
Ottavio Campana