Cadmeo

IP Address Validator

IPv4 or IPv6.

Valid IPv4 address

Classified as: Private (192.168.0.0/16).

IPv4
Version
Private (192.168.0.0/16)
Type
192.168.1.1
Normalised
What that means
  • A private address is not routable on the public internet; it only means something inside its own network.

The checker tells you whether an address is a valid IPv4 or IPv6 address, and what kind it is: public, private, loopback, link-local, multicast or reserved. That classification is usually the thing you actually needed to know, since a private address means nothing outside its own network.

How it works

IPv4 is four decimal parts of 0 to 255 separated by dots. IPv6 is eight groups of up to four hexadecimal digits separated by colons, where :: may appear once to stand for any number of all-zero groups.

  • A leading zero in an IPv4 part is rejected rather than guessed at: some systems read 010 as decimal ten and others as octal eight, and that ambiguity has been the basis of real security bypasses.
  • The :: abbreviation may appear only once, because two of them would leave no way to know how many zero groups belong to each.
  • IPv6 addresses are shown fully expanded, with every group padded to four digits, which is what you need when comparing two addresses written differently.
  • Private ranges are 10.0.0.0/8, 172.16.0.0/12 and 192.168.0.0/16 for IPv4, and fc00::/7 for IPv6.

Several ranges mean something specific. 127.0.0.0/8 is loopback. 169.254.0.0/16 is what a machine assigns itself when DHCP fails, so seeing it in a log usually means a network problem. 100.64.0.0/10 is carrier-grade NAT, used by ISPs to share public addresses between customers.

Examples

A private address

Address

192.168.1.1

Result

Valid IPv4 · Private (192.168.0.0/16)

Not routable on the public internet. The same address exists on millions of home networks simultaneously.

A leading zero

Address

192.168.01.1

Result

Rejected: leading zero

Some parsers read 01 as octal. Because different systems disagree, an address written this way can reach a different host than intended, so it is refused rather than interpreted.

A compressed IPv6 address

Address

2001:db8::1

Result

Valid IPv6 · expanded to 2001:0db8:0000:0000:0000:0000:0000:0001

The :: stands for five groups of zeros here. 2001:db8::/32 is the documentation range, so this address will never belong to a real host.

Frequently asked questions

Why is a leading zero rejected?

Because implementations disagree about what it means. The C library inet_aton reads 010 as octal 8, while most modern parsers read it as decimal 10. An address that resolves to two different hosts depending on who parses it has caused real security bypasses, so it is refused rather than guessed at.

What does it mean when an address is private?

It is only meaningful inside its own network and is never routed on the public internet. Seeing a private address in a server log usually means you are reading the address of a proxy or load balancer rather than the visitor.

Why does :: only appear once in an IPv6 address?

Because it means "as many groups of zeros as needed to reach eight". With two of them there would be no way to know how many belong to each, so the address would be ambiguous. One is always enough, since the missing count is the difference from eight.

What is 169.254.x.x doing on my machine?

It is a link-local address, assigned automatically when a DHCP server cannot be reached. It almost always means the machine failed to get an address from the network, so it is a symptom rather than a configuration.

Does it check whether the address is reachable?

No. This validates the format and classifies the range. Finding out whether something answers at that address needs an actual network request, which a page like this cannot make to an arbitrary host.