The Human Readable Form
The 32-Bit Binary Form
4 octets × 8 bits = 32 bits
The Mathematical Scale
Every single combination mapped into a single 1D line.
The IPv4 Internet
A accurate map of the entire internet's IPv4 address space. Showing you over 1.1 addresses and who maintains them on a Hilbert Curve fractal.
Part I: The Binary Address
What is an IP Address?
You have heard about IP addresses. It's the designated numbers of the devices that make up the internet. Your computer has an IP, the server that hosts this website has an IP, and so has the computer I'm currently writing this text on, later to push it for you to read.
Back in the days a standard was set to format addresses as four numbers, each from 0 to 255 separated by dots, like 192.168.0.1. This IPv4 standard is still the addresses most people think of when they think of identifying a device on the internet. Four small numbers that can pick out any device on the internet. This is of course a lie, in more ways than one.
The number is of course just ones and zeros. 32 of them! Every address is just a 32 bit number. Giving us 4.29 billion possible addresses. That's a lot but the number of addresses needed grew beyond what the standard could support and now we're running out of addresses.
Here I'll try to show you the state of the addresses and hopefully give an intuition for how IPs and the surronding properties of the internet. We will look at the addresses, but not one by one, using some clever representaions of a bunch of addresses the internet can be understood as a single image.
Part II: The Hilbert Fractal
The Hilbert Curve
On the right we have four squares connected by lines. It's for now a simple U. The numbers from 0 to 3 are written out in binary along the line. Not very remarkable, however this is the base of a space filling fractal that we will use to pack a 1-D line into 2-D space.
Mapping 4 Bits (Order 2)
Scaling this up by four we get a higher resolution and can pack 4 times as many numbers in a sqaure. We have gone from 2 bits of information, to 4 bits. If you look at the binary labels you should be able to follow the line and see the numbers increase from 0000 to 1111. You might also noticed that the U shape is still there, it's just made up of smaller U's. The previous curve is of order 1, this one has an order of 2, which can be interpreted as two layers of curving.
The Fractal Scales Up
At Order 3, we map 64 points. It's a bit harder to follow but the shape is still there. Note that the first two numbers change in the same pattern as the first order of the curve. The top left quadrant starts with 00 then bottom left with 01, bottom right with 10 and top right with 11. You might now see where this is going.
Approaching the Limit
By Order 4, we are mapping 256 points. You can still technically follow this path, but I do not recommend it. Instead ask yourself if i wanted to find the number starting with 11 where would I look? And if I then wanted to find the number starting with 1100 where would I look.
The curve places 4**N numbers on a grid and the location is determined by the the numbers themselves in binary. Each bit can be viewed as a division of a square and a choice between left and right or up and down.
The 256 Class A Blocks
Back to our IPs. Here we have the first number of IP addresses (e.g. the 192 in 192.168.0.1), and we have drawn them all out. If each number is the first 8 bits in the 32 bit long address then that means that behind each number we can fit 24 bits of addresses. We've divided the 4 Billion addresses into 256 clusters of 16,777,214 addresses.
This is a real division of addresses called Class A IP addresses or /8 blocks. It's the largest classes of IP's given out to actors, therefor A. Networks of this size can be expressed based on only looking at the 8 first bits of the IP, so sometimes it's referred to as 8 subnet mask IP networks.
There were 128 designation of class A IP's, for a total of half the address space.
add something about where the data is from
Let's have a look at the designated addresses.
Part III: Mapping the Live Internet
The Massive /8 Blocks
That is not remotely half the address space. Why is this?
Well the RIRs very seldom give out that large blocks. Nobody really needs 16 million addresses so locking them to a company would be a waste of addresses.
The blocks we see here belong to major service providers and of course the .
We start by filtering the global BGP routing table to only show the massive historical "Class A" allocations. Each of these blue dots represents a contiguous block of 16.7 million IP addresses!
Because the space seemed infinite in the 1980s, these monolithic allocations were given out freely to early adopters like the US Department of Defense, Apple, Ford, and MIT.
The Class B and C networks
Here you can toggle between the , and networks, or view .
With their netmask of /16 and /24 they contain 2^16 and 2^8 addresses each. The resolution of the map only shows up to /24 networks so each pixel represents 256 addresses. That's three additional orders to a Hilbert curve we're not showing. We can see that Class B and C networks are more commonly distributed. But there are still large gaps of IP addresses that are not allocated by the traditional classes. These have been assigned via the Classless inter-domain routing method.
CIDR and /12
Why limit the assignations to be all numbers in /8, /16 or /24 blocks? Here we have set the resolution to /12 and show all assignation of any blocksize down to /12 designation we see that the space starts to fill in neatly. We add colors for the diffrent sizes of ip networks to differentiate the larger and smaller allocations. The smallest blocks we show here represents around a million IP addresses each and are given to regional ISPs and old tech giants.
Scaling down to /16
Now showing all the networks down to the /16 size most of the map becomes filled in. If you've already down the map you'd know that the /16 blocks consist of 65,536 addresses, typically held by large universities, ISPs, and massive corporations.
The Full /24 Routing Table
Putting all the allocations together we can wow see the entire internet. The /24 block (256 addresses) is the smallest routable chunk on the global table. 16 million entries all showing a network with 256 addresses each. Of course in theory we could show all 2^32 addresses but the addvertised allocations but most allocations are done on the /24 level, any more specific data is harder to get a hold of and it would ballon making this site quite slow.
Designated & Reserved Spaces
Even on our /24 routing table, you will notice distinct dark voids. These address blocks are never announced on public BGP because they are reserved by internet standards:
0.0.0.0/8— Local bootstrapping addresses used when devices power on127.0.0.0/8— Loopback addresses (localhost)224.0.0.0/4— Multicast traffic (Class D)240.0.0.0/4— Reserved for experimental purposes (Class E)
Alongside these are the private address spaces (RFC 1918) used inside every home router, office, and local network:
10.0.0.0/8172.16.0.0/12192.168.0.0/16
We have illuminated all of these special allocations in bright white while keeping the public internet softly visible in the background. Hover over any white block to inspect its details!
The Global Registries
Finally, let's swap the color mode to visualize geographic governance. The entire address space is governed by 5 Regional Internet Registries (RIRs).
Notice how Europe (RIPE) and North America (ARIN) dominate the space, a relic of the internet's early geographic expansion into the fractal.