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 digpolecenie 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ć, digmożesz edytować lokalną zmienną środowiskową PATH lub przenieść dignarzę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.206to 206.3.217.172(zauważ kolejność każdego z czterech oktetów) i dodali in-addr.arpana 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, -xflaga 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 -debugpowtarzał 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 -typeflagą. Różni się od wersji bez -typeflagi 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 recordsstan 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 -nodebugi -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, nslookuptak 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=PTRflagą 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