Network Address Types
Network Address Types
Tacnode offers data types to store IPv4, IPv6, and MAC addresses, as shown inTable 7.19. It is better to use these types instead of plain text types to store network addresses, because these types offer input error checking and specialized operators and functions (seeSection 8.11).
Table Network Address Types
Name | Storage Size | Description |
---|---|---|
inet | 7 or 19 bytes | IPv4 and IPv6 hosts and networks |
When sorting inet
or cidr
data types, IPv4 addresses will always sort before IPv6 addresses, including IPv4 addresses encapsulated or mapped to IPv6 addresses, such as ::10.2.3.4 or ::ffff:
inet
The inet
type holds an IPv4 or IPv6 host address, and optionally its subnet, all in one field. The subnet is represented by the number of network address bits present in the host address (the “netmask”). If the netmask is 32 and the address is IPv4, then the value does not indicate a subnet, only a single host. In IPv6, the address length is 128 bits, so 128 bits specify a unique host address. Note that if you want to accept only networks, you should use the cidr
type rather than inet
.
The input format for this type is address/y
where address
is an IPv4 or IPv6 address and y
is the number of bits in the netmask. If the /y
portion is omitted, the netmask is taken to be 32 for IPv4 or 128 for IPv6, so the value represents just a single host. On display, the /y
portion is suppressed if the netmask specifies a single host.