A couple of weeks ago on April 1st, we unveiled our latest revolutionary product, ProVision Millennial Edition, which allows you to view all your IP addresses in emoji format. Okay, so, we didn’t actually release a version of ProVision for millennials. Welcome to April Fools on the internet. BUT, we did actually create a browser extension to view any IP address on any web page as a set of emojis. That’s what we’re here to talk about today, complete with source code.
IPv4 addresses are technically numbers ranging from 0 to 4,294,967,295 that are divided into 4 groups of numbers (e.g. 192.168.0.1) to make them easier to work with. Initially, we considered replacing the dot separators with a 👏 emoji, but this felt like emoji overload. We opted to leave out the separators altogether for IPv4 and to keep the colon separators for IPv6.
Now, each individual group of numbers in a v4 address ranges from 0 to 255, so we went with the simplest way to store these numbers as IP addresses, which is to have a map of 256 emoji numbered from 0 to 255, and each emoji represents a number from 0 to 255. Meaning that an IPv4 address is comprised of just 4 emoji.
Once you get to IPv6, things start getting a little more complicated. Instead of 4 groups of decimal number from 0-255, IPv6 contains 8 groups of 4 digit hexadecimal numbers. (e.g. 2001:0db8:85a3:0000:0000:8a2e:0370:7334)
This means that we’d have to use a map of 65,535 emoji using our previous method 😱. But there’s a better solution, if we use two emojis from our map of 256 emoji for each group, we can still halve the total number of digits in an IPv6 address while keeping all of the information by using the emoji as a 256 digit numbering system.
Now that we had decided to use a map of 256 emoji, we actually had to curate the best 256 emoji in the world. After countless hours of pouring over various emoji, we came up with a couple of rules to follow whilst picking out emoji:
- All emoji must be in the Unicode emoji set.
- Don’t pick out two visually similar emoji.
After a few rounds of in-fighting and name-calling, we finally arrived at the final map of emoji which can be found in our GitHub repository.
Our first proof of concept, to see if we could make this work, came in the form of a webpage that you can visit at any time to convert your current IP addresses (or any IP address you enter) to emoji.
Once that was working, we created a browser extension which lets you view all the IP addresses in any web page as an emoji address. The extension has two modes of operation:
- A simple popup window which lets you convert IP addresses (similar to our aforementioned proof of concept).
- A button in the popup window that converts IP addresses on the current webpage to our emoji format, for better readability and awesomeness 😎.
The End… or is it the Beginning?
What we’ve done here may or may not be an industry-disrupting technical achievement – we’ll leave that for the next generation to decide – but, it was something we hadn’t seen before, and we thought it was kinda neat. As it turns out, reading a long list of IP addresses in the form of emojis does have its advantages. So, give it a try. Let us know what you think. Did we choose the right emojis? Is this the future of IP address encoding? Should we take this further and encode more things as emojis?
All of our source code for this project can be found in our GitHub repository.