An IPv4 address is a 32-bit integer and an IPv6 address a 128-bit integer. The numeric form is handy for storing addresses compactly in databases, running range comparisons, or debugging low-level network code. IPv6 numbers exceed 64-bit integer types, so use arbitrary-precision types (like Java's BigInteger) when handling them.