After it was pointed out to me in the comics, I've been regularly reading a rather nifty webcomic called xkcd. Today's xkcd strip is an interestingly drawn map of the full IPv4 address space, showing what's allocated to who, and what's still unassigned. It's a cool image, and a good way of showing how the IPv4 addresses are allocated. Go take a look, and check out the xkcd archives while you're there; there's some great math geek humor scattered about.




Comments
MIT has all of 18.everything, and the building where I used to live has 18.224.everything. . . Man, it's almost like it's my fault we need IPv6.
Posted by: Blake Stacey | December 11, 2006 10:38 AM
It looks like he arranged the addresses in the grid according to their position along the Hilbert curve, so any two adjacent domains appear next to each other in the grid. Awesome idea... actually, since the Hilbert curve is recursive, one could potentially write a Flash app that "zooms in" on cells in the grid to reveal how the second octet is allocated within each block, right?
Posted by: Chris Willmore | December 11, 2006 10:55 AM
I like the image title: "For the IPv6 map just imagine the XP default desktop picture".
Posted by: Ithika | December 11, 2006 11:19 AM
Any idea where he got the allocation data from? I mean, I can query whois on a piecemeal basis to see who owns various IP addresses, but I don't see how to get a handle on what chunks are unassigned nor how to build this up easily.
I'll note that the big chunk labeled "various registrars" includes a bunch of small .edu allocations that go "way back" to the early 1990s or even earlier. (e.g. 130.71.*.* and 137.22.*.*)
Posted by: Daniel Martin | December 11, 2006 11:36 AM
Daniel, you can use whois to build that map. For the /8s mentioned so far in the comments here, try:
whois -h whois.arin.net 130.*
whois -h whois.arin.net 137.*
whois -h whois.arin.net 18.0.0.0
(I'm not sure why 18.* doesn't work, but it doesn't. Probably a subtle difference between how ARIN indexes classes vs. CIDR.)
I note that "various registrars" also includes a fair number of RIPE and APNIC delegations, so the map isn't nearly as pretty as his high-level view makes it out to be.
Posted by: parkrrrr | December 11, 2006 12:23 PM
I really like the tiny labels on the dots marking specific hosts. There's The Onion, Something Awful, Suicide Girls, xkcd itself. . . .
Posted by: Blake Stacey | December 11, 2006 12:45 PM
Daniel: I got most of what ended up in the final map from the IANA itself: http://www.iana.org/assignments/ipv4-address-space
Chris: In the blog entry discussing the comic I suggest just this! That's part of why I'm soliciting elegant mapping algorithms (that translate integers* to Hilbert coordinates -- so I can publish them and hopefully make interactive apps/giant posters like that more doable by folk all over.
* Or real numbers*
* Though it doesn't actually cover real numbers, but it covers anything represented as a finite binary number, which gets you close enough.
Posted by: Randall Munroe | December 11, 2006 1:32 PM
Very awesome.
Very minor nitpick: the map marks the locations of 10.* and 192.168.*, but the somewhat more obscure 172.16.0.0/12 space doesn't get a mention.
Mr. Munroe, if that's you, thanks for the consistently great comic :)
Posted by: Coin | December 11, 2006 3:44 PM
Check out the xkcd blag for some comments out the image. http://blag.xkcd.com/2006/12/11/the-map-of-the-internet/
Posted by: Grad | December 11, 2006 8:41 PM
Though it doesn't actually cover real numbers, but it covers anything represented as a finite binary number, which gets you close enough.
Those are rationals.
Posted by: p | December 12, 2006 1:56 PM
p: Not all of the rationals. 1/3 is 0.010101010..., for instance.
Posted by: GreedyAlgorithm | December 12, 2006 3:48 PM
Fixed-Point fractional representations.
Posted by: Coin | December 12, 2006 4:01 PM