Nibbles & Bits

How to View IP Addresses as Emojis (with Source Code)

by | April 19, 2019

Emoji IP

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.

The Method

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.

E.g.:
??⏰☁

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.

E.g.
⭐☁:??:??:⏰:⏰:??:☀?:??

The Selection

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:

  1. All emoji must be in the Unicode emoji set.
  2. 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.

The Implementation

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:

  1. A simple popup window which lets you convert IP addresses (similar to our aforementioned proof of concept).
  2. A button in the popup window that converts IP addresses on the current webpage to our emoji format, for better readability and awesomeness ????.

You can find the browser extension for Chrome, and for Firefox. Or check out the source code yourself.

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.

“We decided to move our rather complex IP address and DHCP management process to ProVision and it has worked out great for us!! The team at 6connect were very flexible and went above and beyond to accommodate our requirements and helped to make the migration as smooth and hitch free as possible. Kudos to the team @ 6connect!”

Premkumar Subramaniam
Head of R&D
viewquest

“We are excited to be partnering with 6connect to leverage their technology and talent. We particularly admire their long-standing IPv6 contributions and their ability to service and support customers in this area, some who are the largest service provider in the world. The 6connect executive leadership team and technical team are great to work with and we look forward to many partnered projects to help customers address their Cloud, IoT and Security needs with IPv6. Automation, workflow and orchestration are critical to the success of most of these projects and 6connect is well positioned to help our mutual customers in those areas.”

Ed Horley
Co-Founder & CEO
HexaBulid

“Enterprises can struggle managing purposefully segmented DDI architectures with any agility. Our partnership with 6connect empowers customers with complex infrastructures to move faster to service the business while consolidating visibility and control over their estate.”

Andrew Wertkin
Chief Strategy Officer,
BlueCat

“6connect’s approach to automation addresses quite a few challenges with physical and virtual networks – how to improve the agility of your current network infrastructure without sacrificing reliability and adoption of future network technologies.”

Pär Lange
Investment Director
SwissCom

“A customer is looking for an integrated solution from a single vendor for both IPAM and DNS. Through the 6connect reseller program, Secure64 is able to offer the most secure DNS solutions married to a unique combination of IPAM and resource provisioning that customers want. It’s a marriage made in heaven.”

Mark Beckett
VP of Marketing
Secure64

“A huge benefit of working with the 6connect team is that they devoted a lot of resources to get our products integrated so we had the turnkey solution that we could take to market. It was very easy to work with their team to get product integrated and successfully launched.”

Mark Beckett
VP of Marketing
Secure64

You have IPv6!

You’re on IPv4.

Explore ProVision Suite

Resource Controller

DNS/DNSSEC

IPAM

DHCP Controller

Peering Controller

REST API

Talk to one of our Engineers

6connect