Wiem, że oznaczono to jako odpowiedź, ale chcę udzielić bardziej wyczerpującej odpowiedzi. Do moich przykładów użyję:
- google.com „s adres IP 172.217.3.206 , ponieważ nie posiada rekord PTR.
- serverfault.com ma adres IP 151.101.1.69, ponieważ nie ma rekordu PTR.
Pierwszą rzeczą, na którą należy zwrócić uwagę, jest dig
polecenie wieloplatformowe, można je uzyskać dla systemu Windows na stronie internetowej ISC BIND wymienionej w BIND, a następnie wybrać platformę Windows (32- lub 64-bitową). Ma wiele innych narzędzi, w tym własny plik binarny nslookup. Nie używam tej wersji nslookup.exe, zamiast tego używam domyślnej wersji systemu Windows (C: \ Windows \ System32 \ nslookup.exe). Jeśli jednak chcesz użyć, dig
możesz edytować lokalną zmienną środowiskową PATH lub przenieść dig
narzędzie do folderu C: \ Windows \ System32.
Polecenie 1) dig PTR 206.3.217.172.in-addr.arpa
- Tradycyjnie w ten sposób użytkownik wykonuje odwrotne wyszukiwanie DNS. Ręcznie transponowaliby adres IP: 172.217.3.206
to 206.3.217.172
(zauważ kolejność każdego z czterech oktetów) i dodali in-addr.arpa
na końcu łańcucha. Oto wynik:
; <<>> DiG 9.9.5 <<>> PTR 206.3.217.172.in-addr.arpa
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39790
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;206.3.217.172.in-addr.arpa. IN PTR
;; ANSWER SECTION:
206.3.217.172.in-addr.arpa. 84300 IN PTR sea15s12-in-f206.1e100.net.
206.3.217.172.in-addr.arpa. 84300 IN PTR sea15s12-in-f14.1e100.net.
206.3.217.172.in-addr.arpa. 84300 IN PTR sea15s12-in-f14.1e100.net.
206.3.217.172.in-addr.arpa. 84300 IN PTR sea15s12-in-f206.1e100.net.
;; Query time: 23 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Mar 26 04:20:28 Pacific Daylight Time 2017
;; MSG SIZE rcvd: 153
Polecenie 2) dig -x 172.217.3.206
- Ta wersja polecenia jest o wiele prostsza, jak opisano w dig -h
, -x
flaga jest „skrótem do wyszukiwania wstecznego”. Dane wyjściowe są identyczne z danymi pokazanymi powyżej w poprzednim poleceniu.
Polecenie 3) dig -x 151.101.1.69
- W tym przykładzie pokazano, jak to wygląda, gdy nie znaleziono rekordu PTR, na przykładzie serverfault.com. Jak widać, odpowiedź nie zawiera PTR i może jedynie znaleźć rekord SOA 151.in-addr.arpa
:
; <<>> DiG 9.9.5 <<>> -x 151.101.1.69
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 21854
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;69.1.101.151.in-addr.arpa. IN PTR
;; AUTHORITY SECTION:
151.in-addr.arpa. 1786 IN SOA pri.authdns.ripe.net. dns.ripe.net. 1490512027 3600 600 864000 3600
;; Query time: 23 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Mar 26 04:30:38 Pacific Daylight Time 2017
;; MSG SIZE rcvd: 114
Polecenie 4) nslookup 172.217.3.174
- Jest to polecenie sugerowane przez użytkownika l0c0b0x w podstawowej odpowiedzi w tym wątku. Chociaż prawdą jest, że istnieje wynik, nie jest jasne, czy jest to rekord PTR, czy jakiś inny rodzaj rekordu. Myślę, że domyślnie zwraca PTR, jeśli otrzyma adres IP, ale nadal chcę być pewien. Pomija także inne rekordy, jeśli istnieje wiele PTR:
Server: google-public-dns-a.google.com
Address: 8.8.8.8
Name: sea15s11-in-f14.1e100.net
Address: 172.217.3.174
Polecenie 5) nslookup -debug 172.217.3.174
- Użyj tego polecenia, aby wyświetlić pełną listę, w tym typ rekordu i pełną listę wyników. W -debug
powtarzał flag, aby go wyłączyć należy użyć -nodebug
:
------------
Got answer:
HEADER:
opcode = QUERY, id = 1, rcode = NOERROR
header flags: response, want recursion, recursion avail.
questions = 1, answers = 1, authority records = 0, additional = 0
QUESTIONS:
8.8.8.8.in-addr.arpa, type = PTR, class = IN
ANSWERS:
-> 8.8.8.8.in-addr.arpa
name = google-public-dns-a.google.com
ttl = 86141 (23 hours 55 mins 41 secs)
------------
Server: google-public-dns-a.google.com
Address: 8.8.8.8
------------
Got answer:
HEADER:
opcode = QUERY, id = 2, rcode = NOERROR
header flags: response, want recursion, recursion avail.
questions = 1, answers = 4, authority records = 0, additional = 0
QUESTIONS:
174.3.217.172.in-addr.arpa, type = PTR, class = IN
ANSWERS:
-> 174.3.217.172.in-addr.arpa
name = sea15s11-in-f14.1e100.net
ttl = 83026 (23 hours 3 mins 46 secs)
-> 174.3.217.172.in-addr.arpa
name = sea15s11-in-f174.1e100.net
ttl = 83026 (23 hours 3 mins 46 secs)
-> 174.3.217.172.in-addr.arpa
name = sea15s11-in-f14.1e100.net
ttl = 83026 (23 hours 3 mins 46 secs)
-> 174.3.217.172.in-addr.arpa
name = sea15s11-in-f174.1e100.net
ttl = 83026 (23 hours 3 mins 46 secs)
------------
Name: sea15s11-in-f14.1e100.net
Address: 172.217.3.174
Polecenie 6) nslookup -type=PTR 172.217.3.174
- Ta wersja polecenia określa rekordy PTR z -type
flagą. Różni się od wersji bez -type
flagi na dwa sposoby. Pierwszą jest lista wszystkich odpowiedzi PTR. Drugi polega na tym, że zawiera informację „Odpowiedź nieautorytatywna”, której drugie polecenie nie uwzględnia. Jeśli uważnie spojrzysz powyżej na wynik debugowania, authority records
stan 0, więc oba te polecenia powinny zawierać „Nieautorytatywną odpowiedź”.
Server: google-public-dns-a.google.com
Address: 8.8.8.8
Non-authoritative answer:
174.3.217.172.in-addr.arpa name = sea15s11-in-f14.1e100.net
174.3.217.172.in-addr.arpa name = sea15s11-in-f14.1e100.net
174.3.217.172.in-addr.arpa name = sea15s11-in-f174.1e100.net
174.3.217.172.in-addr.arpa name = sea15s11-in-f174.1e100.net
Polecenie 7) nslookup -debug -d2 -type=PTR 151.101.1.69
- Oto, w jaki sposób uzyskasz możliwie najwięcej szczegółów na temat żądania pełnego wyszukiwania wstecznego. Przypomnienie: Aby wyłączyć, użyj -nodebug
i -nod2
. Ten przykład celowo zawodzi w przykładzie serverfault.com:
------------
SendRequest(), len 38
HEADER:
opcode = QUERY, id = 1, rcode = NOERROR
header flags: query, want recursion
questions = 1, answers = 0, authority records = 0, additional = 0
QUESTIONS:
8.8.8.8.in-addr.arpa, type = PTR, class = IN
------------
------------
Got answer (82 bytes):
HEADER:
opcode = QUERY, id = 1, rcode = NOERROR
header flags: response, want recursion, recursion avail.
questions = 1, answers = 1, authority records = 0, additional = 0
QUESTIONS:
8.8.8.8.in-addr.arpa, type = PTR, class = IN
ANSWERS:
-> 8.8.8.8.in-addr.arpa
type = PTR, class = IN, dlen = 32
name = google-public-dns-a.google.com
ttl = 86280 (23 hours 58 mins)
------------
Server: google-public-dns-a.google.com
Address: 8.8.8.8
------------
SendRequest(), len 43
HEADER:
opcode = QUERY, id = 2, rcode = NOERROR
header flags: query, want recursion
questions = 1, answers = 0, authority records = 0, additional = 0
QUESTIONS:
69.1.101.151.in-addr.arpa, type = PTR, class = IN
------------
------------
Got answer (103 bytes):
HEADER:
opcode = QUERY, id = 2, rcode = NXDOMAIN
header flags: response, want recursion, recursion avail.
questions = 1, answers = 0, authority records = 1, additional = 0
QUESTIONS:
69.1.101.151.in-addr.arpa, type = PTR, class = IN
AUTHORITY RECORDS:
-> 151.in-addr.arpa
type = SOA, class = IN, dlen = 48
ttl = 1787 (29 mins 47 secs)
primary name server = pri.authdns.ripe.net
responsible mail addr = dns.ripe.net
serial = 1490512027
refresh = 3600 (1 hour)
retry = 600 (10 mins)
expire = 864000 (10 days)
default TTL = 3600 (1 hour)
------------
*** google-public-dns-a.google.com can't find 69.1.101.151.in-addr.arpa.: Non-ex
istent domain
Polecenie 8) nslookup 174.3.217.172.in-addr.arpa
- Być może zastanawiasz się, czy możesz użyć tradycyjnej metody wstecznego wyszukiwania DNS, nslookup
tak jak to zrobiliśmy w Poleceniu 1 z dig
. Możesz. Zwróć uwagę na te same błędy nslookup, które wymieniłem powyżej (Polecenie 6) między tym poleceniem a tym z -type=PTR
flagą ustawioną poniżej (Polecenie 9):
Server: google-public-dns-a.google.com
Address: 8.8.8.8
Name: 174.3.217.172.in-addr.arpa
Command 9) nslookup -type=PTR 174.3.217.172.in-addr.arpa
- Jak można się spodziewać, wygląda identycznie jak Command 6.
Server: google-public-dns-a.google.com
Address: 8.8.8.8
Non-authoritative answer:
174.3.217.172.in-addr.arpa name = sea15s11-in-f14.1e100.net
174.3.217.172.in-addr.arpa name = sea15s11-in-f14.1e100.net
174.3.217.172.in-addr.arpa name = sea15s11-in-f174.1e100.net
174.3.217.172.in-addr.arpa name = sea15s11-in-f174.1e100.net