如何查看PTRlogging?

我需要检查一个PTRlogging,以确保我的脚本正在发送电子邮件,这些电子邮件实际上会被我的用户接收,而不会被错误地标记为垃圾邮件

我知道拥有IP范围的ISP必须设置PTRlogging,但是如何检查它是否已经设置?

如果你有Unix或者Linux ,你可以在命令提示符下input:

dig -x xx.yy.zz.aa 

您将得到aa.zz.yy.xx.in-addr.arpa和服务器parsing到此地址的权限的答案。

Windows中,您可以执行nslookup xx.yy.zz.aa

您也可以通过 http://www.intodns.com 在线查询并input您的域名…它将在检查反向区域查找的结果时出错。

xx.yy.zz.aa =您正在尝试parsing的IP地址


更新:

当使用dig,nslookup或主机时,使用像Google(8.8.8.8)这样的控件之外的DNS服务器通常是有用的,因此您可以从第三方获得确认信息。 – Zoredache

Zoredache是一个很好的观点。 以下是用于testing/parsing外部/外部DNS服务器的命令:

挖掘(在Google的DNS服务器8.8.8.8上testing反向DNS):

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

主机和Nslookup(在Google的DNS服务器8.8.8.8上testing反向DNS)

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

我知道这已被标记为答案,但我想提供一个更全面的答案。 对于我的例子,我将使用:

  1. google.com的IP地址为172.217.3.206,因为它确实有PTRlogging。
  2. serverfault.com的IP地址151.101.1.69,因为它没有 PTRlogging。

首先要注意的是dig是一个多平台的命令,你可以在BIND列出的ISC BIND网站上的Windows上得到它,然后select你的Windows平台(32或64位)。 它有许多其他工具,包括它自己的nslookup二进制文件。 我不使用nslookup.exe版本,而是使用Windows自带的默认版本(C:\ Windows \ System32 \ nslookup.exe)。 但是,如果您想使用dig ,则可能需要编辑本地PATH环境variables,或将dig工具移至C:\ Windows \ System32文件夹。

命令1) dig PTR 206.3.217.172.in-addr.arpa – 传统上这是用户如何执行反向DNS查找。 他们将手动调换IP地址: 172.217.3.206206.3.217.172 (注意四个八位字节的顺序)并将in-addr.arpa添加到string的末尾。 这是输出:

 ; <<>> 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 – 这个例子显示了使用serverfault.com例子找不到PTRlogging的样子。 正如你所看到的,答案没有列出PTR,只能find151.in-addr.arpa的SOAlogging:

 ; <<>> 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 – 这是在这个线程的主要答案中用户l0c0b0xbuild议的命令。 虽然确实有一个结果,但是这是否是PTRlogging或其他types的logging还不清楚。 我认为它默认情况下返回一个PTR,如果它被给了一个IP,但我仍然想确定。 如果有多个PTR,它也会省略其他logging:

 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 – 使用此命令来查看完整列表,包括loggingtypes和结果的完整列表。 -debug标志仍然存在,要closures它,你必须使用-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 – 该版本的命令用-type标志指定PTRlogging。 它不同于没有-type标志的版本有两种方式。 首先是列出所有的PTR答案。 二是它包含了其他命令忽略包含的信息“非权威答案”。 如果仔细看上面的debugging输出, 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 – 下面是你将如何得到尽可能详细的全面反向查询请求。 提醒:要closures它,请使用-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 – 您可能想知道是否可以像使用dig一样在命令1中使用nslookup的传统反向DNS查找方法。 您可以。 请注意,与上面(命令6)中列出的nslookup相同的命令与下面(命令9)设置的-type=PTR标志之间的命令是一样的:

 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 

这与任何一种DNS查询都是一样的。

从Windows命令提示符: nslookup.exe <ip address>

从Linux命令行: host <ip address>

注意:最好从networking外部的计算机运行这些命令,以便访问公共DNS服务器。 或者,nslookup和host都提供了指定要使用的DNS服务器的方法。