Wie ermittle ich den Hostnamen anhand einer IP-Adresse in einem Windows-Netzwerk?

84

Mein LAN hat 50 Windows-Hosts. In der Windows-Befehlszeile versuche ich, per Ping die IP-Adresse eines laufenden Windows-Computers abzurufen.

Die Frage ist, wie der Hostname einer bestimmten IP-Adresse in derselben Windows-Arbeitsgruppe ermittelt werden kann.

Eine andere Frage ist, wie man den Hostnamen eines Windows-Rechners von einer Linux-Box kennt, wenn ich eine IP-Adresse habe. Welchen Befehl benutzt du? Ich habe einen Host, auf dem Kubuntu 9.04 ausgeführt wird.

billyduc
quelle

Antworten:

92

Wenn Sie den Namen eines Windows-Computers ohne DNS ermitteln möchten, sollten Sie Nbtstat versuchen . Das funktioniert aber nur unter Windows:

Zum Beispiel,

NBTSTAT -A 10.10.10.10

Unter Linux sollten Sie nmblookup ausprobieren , das fast dasselbe tut.

Phil Swiss
quelle
3
NBTSTAT setzt voraus, dass NetBIOS geladen und ausgeführt wird, was in größeren Organisationen mit eigener AD- und DNS-Infrastruktur häufig ausgeschaltet ist. Wahrscheinlich eine sichere Annahme bei einer Arbeitsgruppe von 50 Maschinen.
GAThrawn
Danke Decca, das nbtstat ist übrigens klasse ... Ich konnte auf der Linux-Box nmblookup 192.168.1.92 nicht abfragen. 192.168.1.92 auf 192.168.1.255 name_query konnte den Namen 192.168.1.92
billyduc 30.11.09
8
Der Befehl nmblookup -A 192.168.1.92 funktioniert erfolgreich
billyduc
1
nmblookupist Teil des Samba-Pakets meiner Distribution. Ich bin mir nicht sicher, warum nmblookupIP zu Hostname Teil von Samba ist (Code für vernetzte Dateisysteme und Druckdienste).
Trevor Boyd Smith
60

Die technisch vorzuziehende Methode ist das Tippen nslookup <ip address>

NSLOOKUP fragt den DNS-Server nach der IP-Adresse des Hostnamens. Ping verwendet den lokalen DNS-Auflösungscache , der möglicherweise bis zum Leeren falsch ist.

Izzy
quelle
das setzt voraus, dass er einen internen DNS-Server für die Namensauflösung hat. Außerdem erklärte der Op, dass er einen Hostnamen von der IP auflösen wollte, also gehe ich davon aus, dass er den Hostnamen zunächst nicht kennt. Auch für mich gibt es keine richtige oder falsche Vorgehensweise. Es gibt mehrere Methoden, von denen jede gültig ist und von denen jede unterschiedliche Ergebnisse liefern kann.
Joeqwerty
3
Nee. Die Verwendung von PING ist nicht die beste Methode. Sie können einen nslookup <ip address>Befehl ausführen, der die umgekehrte Suche auflöst.
Izzy,
1
Sie verweisen auf NSLOOKUP wie auf ein internes Auflösungstool ... In beiden Fällen ist NSLOOKUP die technisch überlegene Option.
Izzy
1
Aber er hat recht. nslookup ist in diesem Szenario nur dann von Nutzen, wenn ein DNS-Server (intern oder extern) mit Reverse-Lookup-Zoneneinträgen für die Hosts des OP vorhanden ist und die Rechner des OP für die Verwendung dieses DNS-Servers konfiguriert sind.
Maximus Minimus
3
@Izzy Ich habe mich als neues Mitglied registriert, nur um mich für den Tipp für NSLOOKUP zu bedanken, Izzy. Von all dem oben genannten Zeug ist es das einzige, das für mich funktioniert hat. Tausend Dank.
Jeff
9

Unter Windows können Sie ping -a x.x.x.xversuchen, den Hostnamen von der IP-Adresse aufzulösen .

Joeqwerty
quelle
1
PING kann zu ungenauen Ergebnissen führen, insbesondere wenn Sie aktiv an DNS-Problemen arbeiten.
Izzy
Der OP gab nicht an, dass er an DNS-Problemen arbeitete. Er implizierte, dass er an Problemen mit der Namensauflösung arbeitete. DNS ist nicht der einzige Mechanismus zur Namensauflösung in Windows und kein erforderlicher Mechanismus zur Namensauflösung. Er gab auch an, dass er in einer Arbeitsgruppe arbeitet, so dass ich keine Vermutung hinsichtlich seiner DNS-Infrastruktur angestellt habe.
Joeqwerty
DNS ist für Active Directory tatsächlich erforderlich. Wir haben einfach nicht genug Informationen, um diesbezüglich etwas Bestimmtes zu sagen.
Maximus Minimus
@mh: ja das ist es, aber nochmal ... nicht genug info von der op.
Joeqwerty
Danke euch allen ! Ich habe keinen Active Directory-Dienst, sondern nur einen DNS-Server für DHCP, E-Mail und Webserver in meinem Unternehmen. Die meisten Mitarbeiter-Hosts verwenden Windows XP und dieselbe ARBEITSGRUPPE.
billyduc
4

Für Mac-Benutzer smbutil -v status -ae x.x.x.xfunktioniert. Sie können auch verwenden arp -a, um Mac-Adressen für alles in Ihrem Netzwerk abzurufen.

Balupton
quelle
1

nmblookup funktioniert möglicherweise nicht gut für Linux-Hosts, da der NetBIOS- Name veraltet ist. Unter Windows ist es auf das lokale Netzwerk beschränkt.

Arun
quelle
2
Nein das ist falsch. Netbios ist (leider) nicht veraltet und wird für eine Reihe wichtiger Active Directory-Funktionen benötigt.
HopelessN00b
Kann jemand darauf hinweisen, in welchen Fällen AD DS noch auf Netbios angewiesen ist? Es hat Gespräche gegeben, die Netbios seit Windows Server 2003-Zeiten als unangemessen empfunden hat. Wird es jetzt noch irgendwie mit Windows Server 2012 AD DS-Netzwerken benötigt?
Mikhail