ip string required Strict IPv4 or IPv6 address. IPv6 may be compressed or end with an embedded dotted-decimal IPv4 address; brackets and zone identifiers are rejected.
Encode IPv4 and IPv6 addresses as canonical reverse-DNS PTR owner names, or decode complete in-addr.arpa and ip6.arpa names without a DNS query.
Authoritative reference data or standards computation
Parses one strict IP address locally and returns its canonical family-specific reverse name; no DNS request occurs.
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
ip
required
| string | allowed: 2 – 45 example: 10.2.0.52 | Strict IPv4 or IPv6 address. IPv6 may be compressed or end with an embedded dotted-decimal IPv4 address; brackets and zone identifiers are rejected. |
ip string required Strict IPv4 or IPv6 address. IPv6 may be compressed or end with an embedded dotted-decimal IPv4 address; brackets and zone identifiers are rejected.
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
fields | list | example: family,ip | Return only these fields (comma-separated). Mutually exclusive with 'exclude'. |
exclude | list | example: zone | Return all fields except these (comma-separated). |
pretty | boolean | default: false example: true | Pretty-print the JSON response. |
unwrap | boolean | default: false example: true | Drop the envelope: return the raw array/object without data/meta wrapper. |
fields list Return only these fields (comma-separated). Mutually exclusive with 'exclude'.
exclude list Return all fields except these (comma-separated).
pretty boolean Pretty-print the JSON response.
unwrap boolean Drop the envelope: return the raw array/object without data/meta wrapper.
| Field | Type | Description | Example |
|---|---|---|---|
family | integer | IP address family: 4 for IPv4 or 6 for IPv6. | 4 |
ip | string (IP address) | Canonical IP address decoded from or encoded into the reverse name. | 10.2.0.52 |
reverseName | string (absolute DNS name) | Canonical lowercase PTR owner name with its root-label trailing dot. | 52.0.2.10.in-addr.arpa. |
zone | string (absolute DNS name) | Reverse namespace selected for the address family. | in-addr.arpa. |
family integer IP address family: 4 for IPv4 or 6 for IPv6.
example: 4
ip string (IP address) Canonical IP address decoded from or encoded into the reverse name.
example: 10.2.0.52
reverseName string (absolute DNS name) Canonical lowercase PTR owner name with its root-label trailing dot.
example: 52.0.2.10.in-addr.arpa.
zone string (absolute DNS name) Reverse namespace selected for the address family.
example: in-addr.arpa.
/api/reverse-dns/encode?ip=10.2.0.52 {
"data": {
"family": 4,
"ip": "10.2.0.52",
"reverseName": "52.0.2.10.in-addr.arpa.",
"zone": "in-addr.arpa."
},
"meta": {
"endpoint": "reverse-dns",
"route": "/encode",
"params": {
"ip": "10.2.0.52"
},
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} /api/reverse-dns/encode?ip=2001%3Adb8%3A%3A567%3A89ab {
"data": {
"family": 6,
"ip": "2001:db8::567:89ab",
"reverseName": "b.a.9.8.7.6.5.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.",
"zone": "ip6.arpa."
},
"meta": {
"endpoint": "reverse-dns",
"route": "/encode",
"params": {
"ip": "2001:db8::567:89ab"
},
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} /api/reverse-dns/encode?ip=%3A%3Affff%3A192.0.2.1 {
"data": {
"family": 6,
"ip": "::ffff:192.0.2.1",
"reverseName": "1.0.2.0.0.0.0.c.f.f.f.f.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa.",
"zone": "ip6.arpa."
},
"meta": {
"endpoint": "reverse-dns",
"route": "/encode",
"params": {
"ip": "::ffff:192.0.2.1"
},
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} Requires a full host reverse name, canonicalizes the optional root dot and reconstructs the exact IPv4 or IPv6 address.
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
name
required
| string | allowed: 12 – 80 example: 52.0.2.10.in-addr.arpa. | Complete in-addr.arpa or 32-nibble ip6.arpa name. The final root dot is optional; partial zones and ip6.int are rejected. |
name string required Complete in-addr.arpa or 32-nibble ip6.arpa name. The final root dot is optional; partial zones and ip6.int are rejected.
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
fields | list | example: family,ip | Return only these fields (comma-separated). Mutually exclusive with 'exclude'. |
exclude | list | example: zone | Return all fields except these (comma-separated). |
pretty | boolean | default: false example: true | Pretty-print the JSON response. |
unwrap | boolean | default: false example: true | Drop the envelope: return the raw array/object without data/meta wrapper. |
fields list Return only these fields (comma-separated). Mutually exclusive with 'exclude'.
exclude list Return all fields except these (comma-separated).
pretty boolean Pretty-print the JSON response.
unwrap boolean Drop the envelope: return the raw array/object without data/meta wrapper.
| Field | Type | Description | Example |
|---|---|---|---|
family | integer | IP address family: 4 for IPv4 or 6 for IPv6. | 4 |
ip | string (IP address) | Canonical IP address decoded from or encoded into the reverse name. | 10.2.0.52 |
reverseName | string (absolute DNS name) | Canonical lowercase PTR owner name with its root-label trailing dot. | 52.0.2.10.in-addr.arpa. |
zone | string (absolute DNS name) | Reverse namespace selected for the address family. | in-addr.arpa. |
family integer IP address family: 4 for IPv4 or 6 for IPv6.
example: 4
ip string (IP address) Canonical IP address decoded from or encoded into the reverse name.
example: 10.2.0.52
reverseName string (absolute DNS name) Canonical lowercase PTR owner name with its root-label trailing dot.
example: 52.0.2.10.in-addr.arpa.
zone string (absolute DNS name) Reverse namespace selected for the address family.
example: in-addr.arpa.
/api/reverse-dns/decode?name=52.0.2.10.in-addr.arpa. {
"data": {
"family": 4,
"ip": "10.2.0.52",
"reverseName": "52.0.2.10.in-addr.arpa.",
"zone": "in-addr.arpa."
},
"meta": {
"endpoint": "reverse-dns",
"route": "/decode",
"params": {
"name": "52.0.2.10.in-addr.arpa."
},
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} /api/reverse-dns/decode?name=0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa {
"data": {
"family": 6,
"ip": "::",
"reverseName": "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa.",
"zone": "ip6.arpa."
},
"meta": {
"endpoint": "reverse-dns",
"route": "/decode",
"params": {
"name": "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa."
},
"generatedAt": "2026-07-29T08:13:22.000Z"
}
} Builds and decodes the DNS owner names used for PTR records without sending a network request. IPv4 octets are reversed beneath in-addr.arpa.; every one of an IPv6 address's 32 hexadecimal nibbles is reversed into its own label beneath ip6.arpa..
/encode accepts the same strict IPv4 and IPv6 syntax as the platform's CIDR tools, including compressed IPv6 and an embedded dotted-decimal IPv4 tail. It returns a canonical IP address and an absolute, lowercase reverse name with a trailing root-label dot.
/decode accepts a complete reverse name with or without the final dot and canonicalizes it in the response and meta.params. An IPv4 name must contain exactly four decimal octet labels with no leading zeroes. An IPv6 name must contain exactly 32 single-hexadecimal-nibble labels. Partial reverse zones, malformed labels and the obsolete ip6.int namespace return 400 rather than being guessed.
This endpoint only performs deterministic text conversion. It does not query DNS, confirm that a PTR record exists or return a hostname stored in one.
No. It deterministically converts between IP addresses and PTR owner names; it never queries DNS or claims that a PTR record exists.
The canonical 128-bit address is expanded to 32 hexadecimal nibbles, reversed one nibble per label and placed below ip6.arpa. as required by RFC 3596.
No. /decode deliberately requires all four IPv4 octets or all 32 IPv6 nibbles, so a partial delegation is never misrepresented as one host address.
Yes. The input root dot is optional and hexadecimal input is case-insensitive; output is always lowercase and includes the canonical trailing dot.
Generate safe DNS record fixtures with type-correct RDATA and coherent SRV RRsets, using reserved domains and documentation addresses only.
IANA DNS RR TYPE assignments with numeric value, registry meaning and reference — search the scoped list or look up a mnemonic or number.
Parse, split and compare strict IPv4 CIDR blocks or test membership, with canonical unsigned boundaries, exact subnet counts and no truncation.
Parse, split and compare IPv6 CIDRs with exact 128-bit arithmetic, RFC 5952 canonical output and correct /0 and /128 boundaries.
Browse IANA IPv4 and IPv6 special-purpose registries or classify an address with deterministic most-specific-prefix matching.