ฉันจะตรวจสอบบันทึก PTR ได้อย่างไร


30

ฉันต้องตรวจสอบระเบียน PTR เพื่อให้แน่ใจว่าสคริปต์ที่ฉันได้ส่งคืออีเมลซึ่งผู้ใช้ของฉันจะได้รับจริงและไม่ได้ทำเครื่องหมายว่าเป็นสแปมอย่างไม่ถูกต้อง

ฉันเข้าใจว่า ISP ที่เป็นเจ้าของช่วง IP ต้องตั้งค่าระเบียน PTR แต่ฉันจะตรวจสอบได้อย่างไรว่าได้ตั้งค่าไว้แล้ว


สวัสดี Daisetsu ฉันแค่อยากพูดถึงความคิดเห็นของคุณ: "ISP ซึ่งเป็นเจ้าของช่วง IP ต้องตั้งค่าระเบียน PTR" ไม่ใช่ ISP นี่คือการกำหนดค่ากับนายทะเบียนของคุณ หากคุณเป็นเจ้าของ '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 หรือโฮสต์มันมักจะมีประโยชน์ในการใช้เซิร์ฟเวอร์ DNS ที่อยู่นอกการควบคุมของคุณเช่น Google (8.8.8.8) เพื่อให้คุณได้รับการยืนยันสิ่งที่ถูกต้องจากบุคคลที่สาม - Zoredache

Zoredache ทำให้เป็นจุดที่ดี นี่คือคำสั่งสำหรับการทดสอบ / การแก้ไขไปยังเซิร์ฟเวอร์ DNS ภายนอก / ภายนอก:

ขุด (ทดสอบ DNS แบบย้อนกลับบนเซิร์ฟเวอร์ DNS ของ Google ที่ 8.8.8.8):

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

โฮสต์และ Nslookup (ทดสอบ reverse 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 หรือโฮสต์มันมักจะมีประโยชน์ในการใช้เซิร์ฟเวอร์ DNS ที่อยู่นอกการควบคุมของคุณเช่น Google (8.8.8.8) เพื่อให้คุณได้รับการยืนยันสิ่งที่ถูกต้องจากบุคคลที่สาม
Zoredache

12

ฉันรู้ว่าสิ่งนี้ถูกทำเครื่องหมายว่าตอบแล้ว แต่ฉันต้องการให้คำตอบที่ครอบคลุมมากขึ้น สำหรับตัวอย่างของฉันฉันจะใช้:

  1. google.com 's ที่อยู่ IP 172.217.3.206เพราะมันจะมีการบันทึก PTR
  2. ที่อยู่ IP ของserverfault.com 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 แต่ฉันยังต้องการที่จะแน่ใจ นอกจากนี้ยังละเว้นเร็กคอร์ดอื่น ๆ หากมีหลาย PTRs:

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ที่เราทำในคำสั่ง dig1 คุณสามารถ. สังเกตุความล้มเหลวของ 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- อย่างที่คุณคาดไว้มันจะเหมือนกับ 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

ไม่มีปัญหาฉันคิดว่าฉันยังขาดความรู้บางอย่างเกี่ยวกับความหมายและความสำคัญของอำนาจที่เกี่ยวข้องกับผลลัพธ์ ฉันจะทำการวิจัยและเพิ่มเมื่อฉันทำเสร็จแล้ว
projectdp

นี่ควรเป็นคำตอบที่ยอมรับได้ ฉันขอแนะนำให้ OP ทำเครื่องหมายเช่นนี้
Niall Cosgrove

1

มันเหมือนกับการค้นหา DNS ทุกชนิด

จากพรอมต์คำสั่ง windows: nslookup.exe <ip address>

จากบรรทัดคำสั่ง linux: host <ip address>

หมายเหตุ: อาจเป็นการดีที่สุดที่จะเรียกใช้คำสั่งเหล่านี้จากคอมพิวเตอร์นอกเครือข่ายของคุณเพื่อให้คุณเข้าถึงเซิร์ฟเวอร์ DNS สาธารณะ หรืออีกวิธีหนึ่งคือ nslookup และโฮสต์เสนอวิธีในการระบุเซิร์ฟเวอร์ DNS ที่จะใช้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.