addressToArpa(address: Address): string
Builds the reverse DNS pointer name of an IP address of either version.
Picks the version from the type of the address — number for IPv4,
bigint for IPv6 — the same typeof dispatch stringifyAddress and
addressToBytes use, and delegates to addressv4ToArpa or
addressv6ToArpa.
The name is relative — it carries no trailing dot. Append "." if a
resolver requires an absolute name.
An address that came from parseAddress as ::ffff:x.x.x.x arrives here
already unwrapped to IPv4 (ADR 0004), so it gets an in-addr.arpa name.
Callers wanting the ip6.arpa name of a mapped address hold the bigint
from parseAddressv6 and call addressv6ToArpa.
Either version, one call
Either version, one call
import { assertEquals } from "@std/assert"; import { addressToArpa } from "@hertzg/ip/arpa"; import { parseAddress } from "@hertzg/ip/address"; assertEquals(addressToArpa(parseAddress("192.168.0.1").address), "1.0.168.192.in-addr.arpa"); assertEquals( addressToArpa(parseAddress("2001:db8::1").address), "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", );
An IPv4-mapped address is IPv4 by the time it gets here
An IPv4-mapped address is IPv4 by the time it gets here
import { assertEquals } from "@std/assert"; import { addressToArpa } from "@hertzg/ip/arpa"; import { parseAddress } from "@hertzg/ip/address"; assertEquals(addressToArpa(parseAddress("::ffff:192.168.0.1").address), "1.0.168.192.in-addr.arpa");
address: Address
The address, number for IPv4 or bigint for IPv6