Was ist das Reverse-DNS-Befehlszeilenprogramm?

71

Wie lautet der Befehl zum Ermitteln des Namens eines Computers anhand seiner IP-Adresse?

Ich vergesse immer, was dieser Befehl ist, aber ich weiß, dass er in Windows existiert und ich nehme an, dass er in der * nix-Befehlszeile existiert.

Peter Turner
quelle

Antworten:

56

graben und hosten sollte was du suchst;)

http://www.unix.com/unix-dummies-questions-answers/9866-nslookup-linux.html

Auf * nix-Systemen können Sie diesen Befehl ausführen: dig -x [address]

Alternativ können Sie +shortam Ende des digBefehls hinzufügen, um nur das DNS-Ergebnis auszugeben.

Verwenden Sie unter Windowsnslookup

BEARBEITEN: nslookup funktioniert auch auf * nix-Systemen. Weitere Informationen zum Befehl nslookup, ob er seit einiger Zeit ersetzt zu werden scheint: http://linuxreviews.org/man/nslookup/

Marc-Andre R.
quelle
Die gleiche Syntax funktioniert auch mit dem drillDienstprogramm von ldns, dhdrill -x 123.123.123.123
Tullo_x86
52

Unter * nix können Sie Folgendes verwenden:

dig -x [address]
palehorse
quelle
16
Dies scheint definitiv der einfachste Weg zu sein. Fügen Sie am Ende + short hinzu, um nur das rdns-Ergebnis zurückzugeben. dig -x [address] +short
ColinM
3
Diese +shortFlagge ist wirklich nützlich!
Neil
Funktioniert das mit IPv6-Adressen?
Geremia
@ColinM Guter Punkt. Ich habe meine Antwort auf dieser Grundlage bearbeitet. Vielen Dank!
Marc-Andre R.
Ja, @Geremia, laut man dig, Die Adresse ist eine IPv4-Adresse in Punkt-Dezimal-Schreibweise oder eine durch Doppelpunkte getrennte IPv6-Adresse.
Ricardo
8

Auf den meisten mir bekannten Linux-Systemen können Sie:

 nslookup <ip-number EX: 127.0.0.1>

wird auf der Kommandozeile arbeiten.

Ist nslookup unter Windows XP nicht verfügbar?

mdpc
quelle
Ja in der Tat. Und in früheren Versionen von Windows.
Kubanczyk
4

Diese Frage hat bereits eine Million Antworten, aber ich werde noch eine hinzufügen. Hier ist eine kleine Funktion, die ich geschrieben habe, um einfach Reverse DNS mit dig zu machen. Fügen Sie dies zu Ihrer ~/.bashrcDatei hinzu, laden Sie Ihre Shell neu und dann können Sie DNS-Lookups rückgängig machen mit revdns 1.2.3.4:

function revdns() {
    octets=""
    addr="in-addr.arpa"

    # split the IP address into an array of octets
    IFS="." read -r -a octets <<< "$1"

    # add each octet to our $addr string in reverse order
    for octet in "${octets[@]}"; do
         addr=$octet"."$addr
    done

    # run a DNS pointer lookup with dig
    # `+short` makes dig's output very terse (un-verbose)
    # `"${@:2}"` passes any extra params from this command to dig
    dig ptr +short $addr "${@:2}"
}

Reverse-DNS-Lookups werden durch Überprüfen der Zeigerdatensätze (PTR) durchgeführt. Wenn Sie DNS für "1.2.3.4" umkehren möchten, müssen Sie nach Zeigerdatensätzen für "4.3.2.1.in-addr.arpa" suchen. Meine Funktion nimmt eine IP-Adresse auf, kehrt die Reihenfolge der Oktette um (dh ändert sie von 1.2.3.4 in 4.3.2.1) und führt dann die digsoeben beschriebene PTR-Suche aus.

Sie können natürlich nur verwenden, nslookup 1.2.3.4wenn Sie es haben, aber ich bevorzuge diese dig-basierte Lösung, weil sie die DNS-Server des Betriebssystems anstelle der von nslookup bereitgestellten verwendet (wenn Sie möchten, können Sie übrigens zusätzliche dig-Flags hinzufügen Wenn Sie anrufen revdns, werden sie an dig übergeben.

Hayden Schiff
quelle
Laut seiner Hilfe dig -x dot-notationhandelt es sich um die "Abkürzung für Reverse Lookups". Ich fragte mich, wie die lange Version aussehen würde. Danke fürs Erklären! :)
Webwurst
from man dig: Wenn -x verwendet wird, müssen keine Argumente für Name, Klasse und Typ angegeben werden. dig sucht automatisch nach einem Namen wie 94.2.0.192.in-addr.arpa und setzt den Abfragetyp und die Klasse auf PTR bzw. IN.
Ricardo
3

Ich bin mir bewusst, dass dig / host / nslookup die Standardwerkzeuge für diese sind, aber ich behalte diese bei, um die Auflösung des Betriebssystems zu testen (im Wesentlichen, um zu testen, ob nsswitch.conf richtig funktioniert):

gethostbyname:

#!/usr/bin/perl

use Socket;

my @t = gethostbyname($ARGV[0]);
print "\$name     = $t[0]\n"; shift(@t);
print "\$aliases  = $t[0]\n"; shift(@t);
print "\$addrtype = $t[0]\n"; shift(@t);
print "\$length   = $t[0]\n"; shift(@t);

foreach (@t) {
  print "          = ", inet_ntoa($_), "\n";
}

gethostbyaddr:

#!/usr/bin/perl

use Socket;

my @t = gethostbyaddr(inet_aton($ARGV[0]), AF_INET);
print "\$name     = $t[0]\n"; shift(@t);
print "\$aliases  = $t[0]\n"; shift(@t);
print "\$addrtype = $t[0]\n"; shift(@t);
print "\$length   = $t[0]\n"; shift(@t);

foreach (@t) {
  print "          = ", inet_ntoa($_), "\n";
}

Beispiel:

g3 0 /home/jj33/swap > gethostbyname www.google.com
$name     = www.l.google.com
$aliases  = www.google.com
$addrtype = 2
$length   = 4
          = 72.14.205.147
          = 72.14.205.103
          = 72.14.205.104
          = 72.14.205.99
g3 0 /home/jj33/swap > gethostbyaddr 72.14.205.147 
$name     = qb-in-f147.google.com
$aliases  = 
$addrtype = 2
$length   = 4
          = 72.14.205.147
jj33
quelle
4
Sie können "Getent Hosts [IP oder Hostname]"
Hayalci
Hmmm ... Ich habe die Tools ursprünglich nur geschrieben, um mit den Funktionen zu spielen, also kein Verlust, aber ich hätte sie sicherlich nicht in serverfault eingefügt, wenn ich über das Tool getent Bescheid gewusst hätte. Danke für den Hinweis.
jj33
-1: Sie sind auf IPv4 beschränkt, gethostbyname ruft keine IPv6-Adressen ab, wenn sie vorhanden sind, und gethostbyaddr akzeptiert keine IPv6-Adressen.
Bortzmeyer
Diese Funktionen sind viele Jahre veraltet. Sie waren sogar obsolet, als dies geschrieben wurde. In Perl und den meisten anderen Sprachen sollten Sie getaddrinfo und getnameinfo verwenden.
Michael Hampton
3

Unter Windows habe ich mir angewöhnt:

ping -a <ip address>

da dies auch Daten aus Ihrer hostsDatei und WINS und so weiter widerspiegelt .

Dave Webb
quelle
2

Versuchen Sie "Host"

  • Forward-Lookup mit host:

    $ host google-public-dns-b.google.com.
    google-public-dns-b.google.com has address 8.8.4.4
    google-public-dns-b.google.com has IPv6 address 2001:4860:4860::8844
    
  • Rückwärtssuche mit host:

    $ host 8.8.4.4
    4.4.8.8.in-addr.arpa domain name pointer google-public-dns-b.google.com.
    

Ähnlich wie zu graben

  • Forward-Lookup mit dig:

    $ dig google-public-dns-b.google.com. +short
    8.8.4.4
    
  • Rückwärtssuche mit dig:

    $ dig -x 8.8.4.4 +short
    google-public-dns-b.google.com.
    
StackzOfZtuff
quelle
1

Wenn Sie nslookup verwenden, ist dies (unter der Annahme, dass 192.168.0.1 die fragliche IP ist).

> set type=ptr
> 1.0.168.192.in-addr.arpa

BEARBEITEN: Denken Sie daran, dass eine umgekehrte Suche nur funktioniert, wenn für die IP ein PTR-Datensatz erstellt wurde und nicht garantiert wird, dass der gesuchte Hostname zurückgegeben wird. Kommt ganz darauf an, wie DNS in Ihrer Situation konfiguriert und gewartet wird.

Squillman
quelle
5
nsloookup wird nicht mehr gepflegt und die Autoren empfehlen dig. Außerdem ist dig -x viel einfacher, als die Bytes selbst zu invertieren.
bortzmeyer
Das ist gut zu wissen, vielen Dank für die Eingabe! Alte Gewohnheiten sterben schwer;)
squillman
1

Power Shell:

[net.dns]::gethostentry("69.59.196.212").HostName
Richard
quelle
0

Nun, eine freundliche Person, die gerade nslookup geschrieben hat, ist der Befehl, und er hat Recht. Es funktioniert sowohl unter Unix als auch unter Windows. Nicht sicher, warum Sie Ihre Antwort gelöscht haben, aber Sie sind richtig, Sir.

Peter Turner
quelle
äh, vielleicht auch nicht.
Peter Turner
Ja gut, ich habe ein bisschen schnell gepostet und nach einer Überprüfung war ich mir bei der Beantwortung nicht sicher. Ich habe einfach meinen Beitrag zurückgesetzt und bearbeitet, um weitere Details hinzuzufügen;)
Marc-Andre R.
OK, das ist es, aber ich akzeptiere diese Antwort nicht. Schade, dass wir Googley AJAX hier nicht in Echtzeit abrufen können.
Peter Turner
lol ja gut, wir können nicht alles haben;) Einen schönen Tag noch, ich hoffe ich helfe dir;)
Marc-Andre R.
0

Ich bevorzuge die Befehlszeilen-Suche für Windows (hier verfügbar: http://members.shaw.ca/nicholas.fong/dig/ ) gegenüber nslookup an jedem Tag.

Wenn Sie DNS von einer Windows-Workstation aus testen / verwalten müssen, greifen Sie auf dieses Tool zu. Dann:

C:\dig>dig -x <IP Address>

Denken Sie auch daran, Ihrem Pfad c: \ dig hinzuzufügen!

Cory J
quelle
0

Ich übernehme eine umfassendere DNS-Reverse-Suche. Hoffe, dies wird für zukünftige Betrachter dieser Seite von Nutzen sein.

for ip in {1..254..1}; do dig -x 1.1.1.$ip | grep $ip >> dns.txt; done;
Boschko
quelle
-1

nbtstat -a <IP-Adresse>

Peter Turner
quelle
nbstat ist kein DNS-Dienstprogramm, sondern WINS / NetBIOS
user2320464