EN

IP Address Lookup

Parse IPv4/IPv6, detect public/private/loopback

FAQ

How do I tell a public IP from a private one?

10.x.x.x, 172.16-31.x.x and 192.168.x.x are private ranges usable only inside a LAN, and 127.x is loopback. The tool labels the type for you.

Can it look up where an IP is located?

No. It only parses the address itself (type, class, base conversion) and connects to no geolocation database. Use a dedicated IP database service for that.

What does the double colon mean in IPv6?

A run of zero groups can be compressed into a double colon, allowed only once per address. The tool expands to full form and compresses back.

About this tool

Parses IPv4 and IPv6 addresses and reports the type, classification, radix conversions and the expanded/compressed IPv6 forms. All local: there is no geolocation lookup, because that would mean sending your address to someone else.

Classification order and the usual surprises: 10.0.0.0/8, 172.16.0.0/12 and 192.168.0.0/16 are the RFC 1918 private ranges; 100.64.0.0/10 is not RFC 1918 but is the carrier-grade NAT block used by datacentres and mobile networks, equally unroutable on the public internet; 169.254.0.0/16 is link-local and usually means DHCP failed; 127.0.0.0/8 is all loopback; 224.0.0.0/4 is multicast; 240.0.0.0/4 is reserved, and 255.255.255.255 inside it is broadcast.

Leading zeros are rejected outright, for example 010.1.1.1 or 0177.0.0.1. Some parsers read those as octal, turning 0177.0.0.1 into 127.0.0.1 - a classic SSRF and access-control bypass. The right reaction to such an address is not "parse it for me" but "why does it look like that".

The decimal integer is the ip2long value: 192.168.1.1 is 3232235777. PHP's ip2long returns a negative number on 32-bit builds for addresses above 2^31-1; this tool shows the unsigned value, so do not assume a bug when the two disagree.

IPv6 compression follows RFC 5952: lowercase, no leading zeros in any group, compress only the longest run of zero groups, and only when that run is at least two groups. So 2001:0db8:0:0:0:0:0:1 becomes 2001:db8::1, while 2001:db8:0:1:1:1:1:1 keeps its groups because a single zero is never collapsed. Embedded IPv4 forms such as ::ffff:192.168.1.1 are not supported here and are reported as containing illegal characters.

Know the boundary: this is an address parser, not a subnet calculator. It does not test membership in a CIDR block, split prefixes or compute netmasks and broadcast addresses.