5 ms·
I like where you're going with this. By using a base 256 representation you shrink hex's 32 charachters down to 16, almost the same as IPv4's decimal dot repres
by guelo 11y ago
I like where you're going with this. By using a base 256 representation you shrink hex's 32 charachters down to 16, almost the same as IPv4's decimal dot representation of 15 characters: 255.255.255.255.
But obviously you don't address the typeability issue.
Without using the shift key it's easy to type base 32 numbers. That comes out to an average of 26 characters per IPV6 address.
So Hex
deadbeef000000000000000000000001
2607f2f8a36800000000000000000002
fe8000000000000003ceecdfffe30c27
fe800000000000000000000000000001
2607f8b040078090000000000000200e
Becomes base 32:
6ULMVEU0000000000000000001
160VPFH8R80000000000000002
7UG000000000007JNCRVVU6317
7UG00000000000000000000001
160VSB0G07G28000000000080E
If we are willing to use the shift key we could move up to Base 64 and get it down to an average of 21 characters. (Anyone know why the standard base 64 alphabet starts at A instead of 0?):
3q2+7wAAAAAAAAAAAAAAAQ
Jgfy+KNoAAAAAAAAAAAAAg
/oAAAAAAAAADzuzf/+MMJw
/oAAAAAAAAAAAAAAAAAAAQ
Jgf4sEAHgJAAAAAAAAAgDg
Now if we are willing to use unicode characters, why stop at base 256? Unicode has 95,000 characters so we could use a base 65,536 number and cut it down to 8 characters, now we're talking! Unfortunately to get it down to 4 characters would require 4,294,967,296 different characters. Even the extended unicode set won't get us there.
But maybe an alphabet with emoji could be practical. You could have smiley or sad faces in your IP address. All kinds of possibilities with that. Though software such as this HN website would have to be fixed to be able to display it. But you know, a long term project.
- gre 11y agoI like the base32 one. If you put two colons in front then you can even copy/paste and it distinguishes it from other text as an ipv6. ::6ULMVEU0000000000000000001 ::160VPFH8R80000000000000002 ::7UG000000000007JNCRVVU6317 ::7UG00000000000000000000001 ::160VSB0G07G28000000000080E
- oconnor663 11y agoThere's an RFC for IPv6 addresses in Base85: https://tools.ietf.org/html/rfc1924 https://tools.ietf.org/html/rfc1924
- azdle 11y ago> 7. Implementation Issues > Many current processors do not find 128 bit integer arithmetic, as required for this technique, a trivial operation. This is not considered a serious drawback in the representation, but a flaw of the processor designs. Oh, IETF, please never change.
- elcritch 11y agoWhy, thanks! The original inspiration is probably related to http://what3words.com/ http://what3words.com/. Mainly I thought it'd be "mad scientist" thing but it actually is fun and possibly useful in some contexts. As for usability, you could use text substitution [1] and have something like `ip174` change into `⢮`. Setting up 256 mappings isn't too terrible, especially since there is a system to Braille dot ordering. [1]: http://lifehacker.com/162484/save-time-with-text-substitution http://lifehacker.com/162484/save-time-with-text-substitutio... Base 32 seems like a good half-way solution of length reduction vs glyph complexity, as Base 64 or Base 89 (or whichever the RFC suggest) include too many distracting characters (IMHO). Of course, Chinese/Japanese speakers have a natural advantage here (Katana and Hirigana both fall short of a contiguous 64 character mapping): ip6emoji("fe8000000000000003ceecdfffe30c27",Char(0x3300),stride=8) => "㏰㌀㌏㏷" ( though hopefully that's not some form of insult in Chinese! ;) )