Как проверить запись PTR?


30

Мне нужно проверить запись PTR, чтобы убедиться, что мой скрипт отправляет электронные письма, которые фактически будут получены моими пользователями и не будут неправильно помечены как спам.

Я понимаю, что интернет-провайдер, которому принадлежит диапазон IP-адресов, должен настроить запись PTR, но как я могу проверить, установлена ​​ли она уже?


Привет Daisetsu, я просто хотел упомянуть о вашем комментарии: «Интернет-провайдер, которому принадлежит диапазон IP, должен установить запись PTR», это не Интернет-провайдер. Это настраивается вашим регистратором. Если вы являетесь владельцем daisetsu.com, вы можете создать PTR-запись для своего домена. Вы также можете создать локальную запись PTR, если у вас есть внутренний домен на вашем DNS-сервере.
projectdp

Ответы:


42

Если у вас Unix или Linux , вы можете сделать это, набрав это в командной строке:

dig -x xx.yy.zz.aa

Вы получите ответ от своего имени aa.zz.yy.xx.in-addr.arpa и от сервера, который разрешит этот адрес.

В Windows вы можете сделать nslookup xx.yy.zz.aa.

Вы также можете проверить онлайн на www.intodns.com и ввести свой домен ... Это приведет к ошибке при проверке результатов для обратного поиска зоны.

xx.yy.zz.aa = IP-адрес, который вы пытаетесь разрешить


Обновить:

При использовании dig, nslookup или host часто полезно использовать DNS-сервер, находящийся вне вашего контроля, например, Google (8.8.8.8), чтобы вы могли получить подтверждение от третьей стороны. - Зоредаче

Zoredache делает хорошую мысль. Вот команды для тестирования / разрешения для внешних / внешних DNS-серверов:

Dig (тестирование обратного DNS на DNS-сервере Google в 8.8.8.8):

dig -x zz.yy.xx.aa @8.8.8.8

Host и Nslookup (тестирование обратного DNS на DNS-сервере Google от 8.8.8.8)

nslookup zz.yy.xx.aa 8.8.8.8
host zz.yy.xx.aa 8.8.8.8

1
При использовании dig, nslookup или host часто полезно использовать DNS-сервер, находящийся вне вашего контроля, например, Google (8.8.8.8), чтобы вы могли получить подтверждение от третьей стороны.
Зоредаче

12

Я знаю, что это было помечено как ответ, но я хочу дать более полный ответ. Для моих примеров я буду использовать:

  1. google.com «s IP адрес 172.217.3.206 , потому что это делает имеют PTR запись.
  2. serverfault.com «s IP - адрес 151.101.1.69 , потому что он не имеет PTR записи.

Первое, на что стоит обратить внимание, dig- это мультиплатформенная команда. Вы можете получить ее для Windows на веб-сайте ISC BIND, указанном в разделе BIND, а затем выбрать платформу Windows (32- или 64-разрядную). У него есть много других инструментов, включая собственный двоичный файл nslookup. Я не использую эту версию nslookup.exe, вместо этого я использую версию по умолчанию, поставляемую с Windows (C: \ Windows \ System32 \ nslookup.exe). Однако, если вы хотите использовать его, digвы можете отредактировать локальную переменную среды PATH или переместить digинструмент в папку C: \ Windows \ System32.

Команда 1) dig PTR 206.3.217.172.in-addr.arpa- Традиционно так пользователь выполняет обратный просмотр DNS. Они вручную перенесли бы IP-адрес: 172.217.3.206в 206.3.217.172(обратите внимание на порядок каждого из четырех октетов) и добавили in-addr.arpaбы в конец строки. Вот вывод:

; <<>> 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

Команда 2) dig -x 172.217.3.206- Эта версия команды намного проще, как описано в dig -h, -xфлаг является «ярлыком для обратного поиска». Вывод идентичен выводу, показанному выше в предыдущей команде.

Команда 3) dig -x 151.101.1.69- Этот пример показывает, как выглядит, когда запись PTR не найдена, на примере serverfault.com. Как видите, в ответе нет списка PTR, а можно найти только запись 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

Команда 4) nslookup 172.217.3.174- Это команда, предложенная пользователем l0c0b0x в основном ответе в этой теме. Хотя это правда, что есть результат, неясно, является ли это запись PTR или какой-либо другой тип записи. Я думаю, что по умолчанию он возвращает PTR, если ему присвоен IP, но я все еще хочу быть уверенным. Он также пропускает другие записи, если есть несколько PTR:

Server:  google-public-dns-a.google.com
Address:  8.8.8.8

Name:    sea15s11-in-f14.1e100.net
Address:  172.217.3.174

Команда 5). nslookup -debug 172.217.3.174Используйте эту команду, чтобы увидеть полный список, включая тип записи и полный список результатов. В -debugфлаг сохраняется, чтобы выключить его , вы должны использовать -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

Команда 6) nslookup -type=PTR 172.217.3.174- Эта версия команды определяет записи PTR с -typeфлагом. Это отличается от версии без -typeфлага двумя способами. Во-первых, в нем перечислены все ответы PTR. Во-вторых, он включает в себя информацию «Неавторизованный ответ», которую другая команда игнорирует. Если вы внимательно посмотрите выше на выходные данные отладки, authority recordsсостояние 0, поэтому обе эти команды должны указать «Неавторизованный ответ».

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

Команда 7) nslookup -debug -d2 -type=PTR 151.101.1.69- Вот как вы можете получить как можно больше подробностей о запросе полного обратного просмотра. Напоминание: чтобы отключить его, используйте -nodebugи -nod2. В этом примере намеренно происходит сбой на примере 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

Команда 8) nslookup 174.3.217.172.in-addr.arpa- Вам может быть интересно, можете ли вы использовать традиционный метод обратного просмотра DNS с помощью, nslookupкак мы это делали в команде 1 с dig. Вы можете. Обратите внимание на те же ошибки nslookup, которые я перечислил выше (команда 6), между этой командой и командой с -type=PTRустановленным ниже флагом (команда 9):

Server:  google-public-dns-a.google.com
Address:  8.8.8.8

Name:    174.3.217.172.in-addr.arpa

Команда 9) nslookup -type=PTR 174.3.217.172.in-addr.arpa- Как и следовало ожидать, она выглядит идентично команде 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

Нет проблем, я думаю, что мне все еще не хватает некоторых знаний о значении и значении авторитета в том, что касается результатов. Я сделаю небольшое исследование и добавлю его, когда я закончу.
projectdp

Это должен быть принятый ответ. Я призываю ОП пометить его как таковой.
Найл Косгроув

1

Это то же самое, что любой поиск DNS.

Из командной строки Windows: nslookup.exe <ip address>

Из командной строки Linux: host <ip address>

Примечание. Вероятно, лучше всего выполнять эти команды с компьютера за пределами вашей сети, чтобы вы обращались к общедоступному DNS-серверу. В качестве альтернативы и nslookup, и host предлагают способы указать DNS-сервер для использования.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.