Was ist das Reverse-DNS-Befehlszeilenprogramm?


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/


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]

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?


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.


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

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 .


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.
    

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.


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

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.


ä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!


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;

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.