So finden Sie den Hostnamen von der IP-Adresse ohne Anmeldung am Host


128

Ich muss den Hostnamen eines UNIX-Hosts finden, dessen IP bekannt ist, ohne sich bei diesem UNIX-Host anzumelden


19
NBTSTAT -A 10.10.10.10 für Windows
Kanagavelu Sugumar

2
Wirst du jemals eine Antwort akzeptieren?
Paolo Stefan

2
@PaoloStefan Wenn der Benutzer zuletzt im Jahr 2009 gesehen wird, ist es ein höchst unwahrscheinliches Ereignis
Boris Treukhov

Antworten:


163

Verwenden Sie nslookup

nslookup 208.77.188.166 
...
Non-authoritative answer:
166.188.77.208.in-addr.arpa     name = www.example.com.

2
Bei Centos-Installationen müssen Sie sudo yum install bind-utilszuerst ausführen . Dies wird nslookup Lookup für Sie installieren
lfender6445

nslookup ist veraltet. Sie könnten stattdessen 'dig' oder 'host' verwenden
P. Barbadew

74

Sie können auch eine umgekehrte DNS-Suche durchführen host. Geben Sie einfach die IP-Adresse als Argument an:

$ host 192.168.0.10
server10 has address 192.168.0.10

43

Ein weiteres NS-Suchdienstprogramm, das für die umgekehrte Suche verwendet werden kann, ist digdie folgende -xOption:

$ 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

oder

$ 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

Zitat aus der Dig Manpage :

Reverse Lookups - Zuordnen von Adressen zu Namen - werden durch die vereinfacht Option -x . addr ist eine IPv4-Adresse in Punkt-Dezimal-Schreibweise oder eine durch Doppelpunkte getrennte IPv6-Adresse. Wenn diese Option verwendet wird, müssen die Argumente name, class und type nicht angegeben werden. dig führt automatisch eine Suche nach einem Namen wie 11.12.13.10.in-addr.arpa durch und setzt den Abfragetyp und die Klasse auf PTR bzw. IN.



17
  • Versuchen Sie unter Windows:

    NBTSTAT -A 10.100.3.104
    

    oder

    ping -a 10.100.3.104
    
  • Versuchen Sie unter Linux:

    nmblookup -A 10.100.3.104
    

Sie sind fast gleich.


2
nmblookup hat großartig funktioniert, ich habe nicht versucht, den Hostnamen eines Webservers zu finden, sondern Computer, die Dinge taten, die sie nicht tun sollten. Dies enthüllte nicht nur den Windows-Hostnamen, sondern auch die Mac-Adresse, die als nächstes auf meiner Liste stand!
FreeSoftwareServers

9
python -c "import socket;print(socket.gethostbyaddr('127.0.0.1'))"

Wenn Sie nur den Namen und keine zusätzlichen Informationen benötigen, fügen Sie am Ende [0] hinzu:

python -c "import socket;print(socket.gethostbyaddr('8.8.8.8'))[0]"

Es heißt, ungültiger Syntax-Hervorhebungs-Socket.
Sandeep Roy

1
Für Python3 ändern Sie den Druck in eine Funktion in Klammern:python -c "import socket;print(socket.gethostbyaddr('10.16.7.10'))"
Corey Goldberg

7

Das hängt vom Kontext ab. Ich denke, Sie beziehen sich auf den Hostnamen des Betriebssystems (zurückgegeben von, hostnamewenn Sie angemeldet sind). Dieser Befehl gilt nur für interne Namen. Um den Namen eines Computers abzufragen, sind unterschiedliche Benennungssysteme erforderlich. Es gibt mehrere Systeme, die Namen verwenden, um Hosts zu identifizieren, einschließlich DNS, DHCP, LDAP ( DNs ) hostnameusw., und viele Systeme verwenden Zeroconf , um Namen zwischen mehreren Benennungssystemen zu synchronisieren. Aus diesem Grund hostnamestimmen die Ergebnisse von manchmal mit den Ergebnissen von dig(siehe unten) oder anderen Benennungssystemen überein, aber oft stimmen sie nicht überein.

DNS ist bei weitem am gebräuchlichsten und wird sowohl im Internet (wie google.com. A 216.58.218.142) als auch zu Hause (mDNS / LLMNR) verwendet. So führen Sie eine umgekehrte DNS-Suche durch : dig -x <address>( nslookupund hostsind einfacher, liefern weniger Details und geben möglicherweise sogar andere zurück Ergebnisse, digist jedoch nicht in Windows enthalten).

Beachten Sie, dass Hostnamen innerhalb eines CDN nicht in den kanonischen Domainnamen (z. B. "google.com") aufgelöst werden, sondern in den Hostnamen der von Ihnen abgefragten Host-IP (z. B. "dfw25s08-in-f142.1e100.net"; interessanter Leckerbissen: 1e100 ist 1 googol).

Beachten Sie auch, dass DNS-Hosts mehr als einen Namen haben können. Dies ist häufig bei Hosts mit mehr als einem Webserver (virtuelles Hosting) der Fall, obwohl dies aufgrund der zunehmenden Verbreitung von Virtualisierungstechnologien immer seltener vorkommt. Diese Hosts verfügen über mehrere PTR-DNS-Einträge .

Beachten Sie schließlich, dass DNS-Hosteinträge vom lokalen Computer über / etc / hosts überschrieben werden können . Wenn Sie nicht den erwarteten Hostnamen erhalten, überprüfen Sie diese Datei.

DHCP- Hostnamen werden je nach verwendeter DHCP-Serversoftware unterschiedlich abgefragt, da das Protokoll (soweit ich weiß) keine Methode zum Abfragen definiert. Die meisten Server bieten jedoch eine Möglichkeit, dies zu tun (normalerweise mit einem privilegierten Konto).

Hinweis DHCP-Namen werden normalerweise mit DNS-Servern synchronisiert. Daher werden in einer DHCP-Client-Mindesttabelle und in den A-Einträgen (oder AAAA für IPv6) des DNS-Servers häufig dieselben Hostnamen angezeigt. Auch dies wird normalerweise als Teil von zeroconf durchgeführt.

Beachten Sie auch, dass nur weil eine DHCP-Lease für einen Client existiert, dies nicht bedeutet, dass sie noch verwendet wird.

NetBIOS für TCP / IP (NBT) wurde jahrzehntelang zur Durchführung der Namensauflösung verwendet, wurde jedoch seitdem durch LLMNR für die Namensauflösung ersetzt (Teil von zeroconf unter Windows). Dieses Legacy-System kann weiterhin mit nbtstat(Windows) oder nmblookup(Linux) abgefragt werden .


@ John Syrinek Können Sie die Abfrage von DHCP-Hostnamen näher erläutern? Ich möchte den Hostnamen eines anderen Computers (im selben WLAN) nach IP abfragen. Ist dies möglich?
Jfly

2

Die anderen Antworten hier sind richtig - verwenden Sie Reverse-DNS-Lookups. Wenn Sie dies über eine Skriptsprache (Python, Perl) tun möchten, können Sie die gethostbyaddr-API verwenden.


0

Wenn Sie speziell nach einem Windows-Computer suchen, versuchen Sie den folgenden Befehl:

nbtstat -a 10.228.42.57


-1

In den meisten Fällen funktioniert der Befehl traceroute einwandfrei. nslookup- und host-Befehle können fehlschlagen.


4
Das ist falsch: Bei einer gegebenen IP-Adresse muss nur eine umgekehrte Abfrage an das DNS durchgeführt werden. Daher ist Traceroute nicht das richtige Werkzeug, um es vorzuschlagen.
Ottavio Campana
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.