Ich muss den Hostnamen eines UNIX-Hosts finden, dessen IP bekannt ist, ohne sich bei diesem UNIX-Host anzumelden
unix
command-line
hostname
user75536
quelle
quelle
Antworten:
Verwenden Sie nslookup
quelle
sudo yum install bind-utils
zuerst ausführen . Dies wird nslookup Lookup für Sie installierenSie können auch eine umgekehrte DNS-Suche durchführen
host
. Geben Sie einfach die IP-Adresse als Argument an:quelle
Ein weiteres NS-Suchdienstprogramm, das für die umgekehrte Suche verwendet werden kann, ist
dig
die folgende-x
Option:oder
Zitat aus der Dig Manpage :
quelle
Für Windows ping -a 10.10.10.10
quelle
Versuchen Sie unter Windows:
oder
Versuchen Sie unter Linux:
Sie sind fast gleich.
quelle
Wenn Sie nur den Namen und keine zusätzlichen Informationen benötigen, fügen Sie am Ende [0] hinzu:
quelle
python -c "import socket;print(socket.gethostbyaddr('10.16.7.10'))"
Das hängt vom Kontext ab. Ich denke, Sie beziehen sich auf den Hostnamen des Betriebssystems (zurückgegeben von,
hostname
wenn 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 )hostname
usw., und viele Systeme verwenden Zeroconf , um Namen zwischen mehreren Benennungssystemen zu synchronisieren. Aus diesem Grundhostname
stimmen die Ergebnisse von manchmal mit den Ergebnissen vondig
(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>
(nslookup
undhost
sind einfacher, liefern weniger Details und geben möglicherweise sogar andere zurück Ergebnisse,dig
ist 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) odernmblookup
(Linux) abgefragt werden .quelle
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.
quelle
Wenn Sie speziell nach einem Windows-Computer suchen, versuchen Sie den folgenden Befehl:
quelle
Sie können auch den Befehl traceroute verwenden.
http://linux.die.net/man/8/traceroute
Verwenden Sie einfach die Traceroute, um den Routing-Pfad mit den Hostnamen anzuzeigen (IPs aufgelöst).
quelle
In den meisten Fällen funktioniert der Befehl traceroute einwandfrei. nslookup- und host-Befehle können fehlschlagen.
quelle