我需要检查一个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
我知道这已被标记为答案,但我想提供一个更全面的答案。 对于我的例子,我将使用:
首先要注意的是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.206
到206.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服务器的方法。