← DNS RecordsRecord Type / Reverse DNS

PTR Record

Maps an IP address back to a hostname. Essential for mail server reputation, security logging, and network diagnostics.

Overview

Reverse DNS Pointer

PTR records enable reverse DNS lookups — given an IP address, return its associated hostname. While forward DNS asks "what is the IP for this name?", reverse DNS asks "what is the name for this IP?".

Reverse DNS is stored in special zones under in-addr.arpa (IPv4) and ip6.arpa (IPv6). For IPv4, the address is reversed and appended to in-addr.arpa: the PTR record for 203.0.113.42 is stored at 42.113.0.203.in-addr.arpa.

  • PTR records are controlled by whoever owns the IP address — your ISP or hosting provider, not your domain registrar
  • For mail servers, PTR must match the server's SMTP HELO/EHLO hostname (forward-confirmed PTR)
  • Many spam filters reject or heavily penalize mail from IPs without a matching PTR record
  • IPv6 PTR uses nibble format — each hex digit separated by dots, reversed, under ip6.arpa
  • Request PTR records from your ISP or hosting provider's control panel or support
; Syntax (in the reverse zone file) ; reversed-IP.in-addr.arpa. PTR hostname. ; IPv4: 203.0.113.42 → thedns.guru. ; Stored in zone: 113.0.203.in-addr.arpa. 42 IN PTR thedns.guru. ; Full FQDN form (as seen in dig output) 42.113.0.203.in-addr.arpa. PTR thedns.guru. ; IPv6: 2001:db8::1 → hostname ; Address: 2001:0db8:0000:0000:0000:0000:0000:0001 ; Nibble reversed: ; 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 ; .0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa. 1.0.0...8.b.d.0.1.0.0.2.ip6.arpa. PTR host.example.com.
PTR Is Controlled by Your IP ProviderYou cannot set PTR records in your domain's DNS — PTR records live in reverse zones delegated to whoever owns the IP block. For VPS/cloud providers, set the PTR (or "reverse DNS") in your server control panel. For on-premise IPs, contact your ISP.
Mail Deliverability

PTR Records and Email Reputation

A forward-confirmed reverse DNS (FCrDNS) check is one of the most common spam-filtering tests. The receiving mail server takes the sending IP, performs a PTR lookup, then does a forward A lookup on the result. If the forward lookup returns the original IP, the check passes.

For example: sending IP 203.0.113.50 → PTR lookup → mail.example.com → A lookup → 203.0.113.50. Match = FCrDNS pass.

Missing or mismatched PTR records don't guarantee rejection, but they raise spam scores on Spamassassin, Microsoft 365, and Google Workspace. For dedicated outbound mail servers, PTR configuration is non-negotiable.

; FCrDNS check steps ; Step 1: Get sending IP from SMTP session ; 203.0.113.50 ; Step 2: PTR lookup ; 50.113.0.203.in-addr.arpa PTR mail.example.com. ; Step 3: Forward A lookup on PTR result ; mail.example.com. A 203.0.113.50 ; Step 4: Match? ; 203.0.113.50 == 203.0.113.50 → PASS ; Check your own mail server: dig -x 203.0.113.50 +short ; Returns: mail.example.com. dig mail.example.com A +short ; Returns: 203.0.113.50 ; ✓ Forward-confirmed
Diagnostics

Querying PTR Records

Reverse lookup an IP

# Reverse lookup dig -x 203.0.113.42 +short # Using host: host 203.0.113.42 # Using nslookup: nslookup 203.0.113.42 # Manually construct the query: dig 42.113.0.203.in-addr.arpa PTR +short

IPv6 reverse lookup

# IPv6 reverse lookup dig -x 2001:db8::1 +short # Or use host: host 2001:db8::1 # Manual nibble format: # 2001:0db8:0000:0000:0000:0000:0000:0001 # → 1.0.0.0.0.0.0.0...8.b.d.0.1.0.0.2.ip6.arpa

FCrDNS verification

# Full forward-confirmed check IP="203.0.113.50" HOSTNAME=$(dig -x $IP +short | sed 's/\.$//') echo "PTR: $HOSTNAME" FWD=$(dig $HOSTNAME A +short) echo "Forward A: $FWD" [ "$IP" = "$FWD" ] && echo "FCrDNS: PASS" || echo "FCrDNS: FAIL"

Check subnet delegation

# Who is authoritative for the reverse zone? dig 113.0.203.in-addr.arpa NS +short # For a /24 block: 0.203.in-addr.arpa # For a /16 block: 203.in-addr.arpa # The authoritative NS = your ISP # (or you, if ISP delegated the zone)