If you have spent any time with IPv6 addresses, you may have realized that there are many different words that you can spell within an IPv6 address. So, let’s take a look at all the different IPv6 words we can spell!
First, we need to define what numbers are equal to what letters, and then we can walk through how I created a list of IPv6 words.
Since IPv6 addresses are comprised of hexadecimal numbers, we already have the letters A, B, C, D, E, and F to work with in our sentences. Next are the numbers that can represent letters…
The letters:
Number | Letter |
1 | I or L |
2 | Z |
5 | S |
7 | T |
9 | G |
So, combining all of this, we have the letters A, B, C, D, E, F, G, I, L, O, S, T, and Z.
Next, we need a dictionary that we can pull our words from. I decided to use the SCOWL Word List, because it will easily generate a list from the command line which we can then use in our scripts to create a list of words. There are probably better dictionaries to start with, that will produce better results (some of our words will be somewhat silly, like aas, but I’m a dogg and that’s how I roll).
After download and extracting the word list from above, we are going to make an American word list. Now, there are many different options for the SCOWL software, depending on how many words you want included in your list, language, etc. See the SCOWL readme for more details and options…
$ ./mk-list american 80 > ipv6words80-1.txt
This will create our base IPv6 word list. The 80 indicates the size of the dictionary, which should contain over 338,000 words. It is probably way to big, with many words we will never use, but that is where we’re going to start anyways!
Next, we are going to pull out all of the words that contain letters from our specified list above, and write them into a second file. Using the grep command we will search for any letters we don’t want, ignore the case, invert our match, and write!
$ grep -iv 'h\|j\|k\|m\|n\|p\|q\|r\|u\|v\|w\|x\|y' ipv6words80-1.txt > ipv6words80-2.txt
Now, we have a list of words that only contain the letters from our list above! However, before we can do anything else, we need to remove any non-standard characters in the words (like apostrophes), and change any umlaut vowels to regular english vowels. This time we will use the string editor sed along with perl to accomplish our task.
$ sed -i s/\'//g ipv6words80-2.txt $ perl -pi -e 's/\xC0/A/g' ipv6words80-2.txt $ perl -pi -e 's/\xC1/A/g' ipv6words80-2.txt $ perl -pi -e 's/\xC2/A/g' ipv6words80-2.txt $ perl -pi -e 's/\xC3/A/g' ipv6words80-2.txt $ perl -pi -e 's/\xC4/A/g' ipv6words80-2.txt $ perl -pi -e 's/\xC5/A/g' ipv6words80-2.txt $ perl -pi -e 's/\xC6/AE/g' ipv6words80-2.txt $ perl -pi -e 's/\xC7/C/g' ipv6words80-2.txt $ perl -pi -e 's/\xC8/E/g' ipv6words80-2.txt $ perl -pi -e 's/\xC9/E/g' ipv6words80-2.txt $ perl -pi -e 's/\xCA/E/g' ipv6words80-2.txt $ perl -pi -e 's/\xCB/E/g' ipv6words80-2.txt $ perl -pi -e 's/\xCC/I/g' ipv6words80-2.txt $ perl -pi -e 's/\xCD/I/g' ipv6words80-2.txt $ perl -pi -e 's/\xCE/I/g' ipv6words80-2.txt $ perl -pi -e 's/\xCF/I/g' ipv6words80-2.txt $ perl -pi -e 's/\xD0/D/g' ipv6words80-2.txt $ perl -pi -e 's/\xD1/N/g' ipv6words80-2.txt $ perl -pi -e 's/\xD2/O/g' ipv6words80-2.txt $ perl -pi -e 's/\xD3/O/g' ipv6words80-2.txt $ perl -pi -e 's/\xD4/O/g' ipv6words80-2.txt $ perl -pi -e 's/\xD5/O/g' ipv6words80-2.txt $ perl -pi -e 's/\xD6/O/g' ipv6words80-2.txt $ perl -pi -e 's/\xD8/O/g' ipv6words80-2.txt $ perl -pi -e 's/\xD9/U/g' ipv6words80-2.txt $ perl -pi -e 's/\xDA/U/g' ipv6words80-2.txt $ perl -pi -e 's/\xDB/U/g' ipv6words80-2.txt $ perl -pi -e 's/\xDC/U/g' ipv6words80-2.txt $ perl -pi -e 's/\xDD/Y/g' ipv6words80-2.txt $ perl -pi -e 's/\xDF/B/g' ipv6words80-2.txt $ perl -pi -e 's/\xE0/a/g' ipv6words80-2.txt $ perl -pi -e 's/\xE1/a/g' ipv6words80-2.txt $ perl -pi -e 's/\xE2/a/g' ipv6words80-2.txt $ perl -pi -e 's/\xE3/a/g' ipv6words80-2.txt $ perl -pi -e 's/\xE4/a/g' ipv6words80-2.txt $ perl -pi -e 's/\xE5/a/g' ipv6words80-2.txt $ perl -pi -e 's/\xE6/ae/g' ipv6words80-2.txt $ perl -pi -e 's/\xE7/c/g' ipv6words80-2.txt $ perl -pi -e 's/\xE8/e/g' ipv6words80-2.txt $ perl -pi -e 's/\xE9/e/g' ipv6words80-2.txt $ perl -pi -e 's/\xEA/e/g' ipv6words80-2.txt $ perl -pi -e 's/\xEB/e/g' ipv6words80-2.txt $ perl -pi -e 's/\xEC/i/g' ipv6words80-2.txt $ perl -pi -e 's/\xED/i/g' ipv6words80-2.txt $ perl -pi -e 's/\xEE/i/g' ipv6words80-2.txt $ perl -pi -e 's/\xEF/i/g' ipv6words80-2.txt $ perl -pi -e 's/\xF0/o/g' ipv6words80-2.txt $ perl -pi -e 's/\xF1/n/g' ipv6words80-2.txt $ perl -pi -e 's/\xF2/o/g' ipv6words80-2.txt $ perl -pi -e 's/\xF3/o/g' ipv6words80-2.txt $ perl -pi -e 's/\xF4/o/g' ipv6words80-2.txt $ perl -pi -e 's/\xF5/o/g' ipv6words80-2.txt $ perl -pi -e 's/\xF6/o/g' ipv6words80-2.txt $ perl -pi -e 's/\xF8/o/g' ipv6words80-2.txt $ perl -pi -e 's/\xF9/u/g' ipv6words80-2.txt $ perl -pi -e 's/\xFA/u/g' ipv6words80-2.txt $ perl -pi -e 's/\xFB/u/g' ipv6words80-2.txt $ perl -pi -e 's/\xFC/u/g' ipv6words80-2.txt $ perl -pi -e 's/\xFD/y/g' ipv6words80-2.txt $ perl -pi -e 's/\xFF/y/g' ipv6words80-2.txt
Since we just changed a bunch of umlauts to letters, we are going to run the grep command again.
$ grep -iv 'h\|j\|k\|m\|n\|p\|q\|r\|u\|v\|w\|x\|y' ipv6words80-2.txt > ipv6words80-3.txt
Now, we will remove any words that are longer than 4 characters. You could optionally skip this step, however you will end up creating words in your IPv6 addresses that will have colons in them. I don’t really want that, so I’m going to pull out only the words that are 4 characters in length or less. We can use grep to complete this step.
grep -E '^[[:alpha:]]{4}$' ipv6words80-3.txt > ipv6words80-4.txt grep -E '^[[:alpha:]]{3}$' ipv6words80-3.txt >> ipv6words80-4.txt grep -E '^[[:alpha:]]{2}$' ipv6words80-3.txt >> ipv6words80-4.txt grep -E '^[[:alpha:]]{1}$' ipv6words80-3.txt >> ipv6words80-4.txt
Next, we will convert everything to lowercase using the tr command, and write to the ipv6words80-5.txt file…
$ tr '[A-Z]' '[a-z]' < ipv6words80-4.txt > ipv6words80-5.txt
Now, when displaying IPv6 addresses, the leading 0 in any group of 4 hexadecimal digits will be omitted (so the address 2001:db8:0la::1 is written as 2001:db8:1a::1), so we need to remove any words that begin with the letter o.
grep -v ^o ipv6words80-5.txt > ipv6words80-6.txt
This time, let’s sort the IPv6 word list and remove the duplicates (after converting everything to lowercase, we will end up having some duplicate words). This can be accomplished with the sort command…
$ sort -u ipv6words80-6.txt > ipv6words80-7.txt
Finally, we have a list of IPv6 words which we can actually use! All that is left is for us to convert the non-hexadecimal letters to numbers…
sed -i 's/o/0/g' ipv6words80-7.txt sed -i 's/i/1/g' ipv6words80-7.txt sed -i 's/l/1/g' ipv6words80-7.txt sed -i 's/z/2/g' ipv6words80-7.txt sed -i 's/s/5/g' ipv6words80-7.txt sed -i 's/t/7/g' ipv6words80-7.txt sed -i 's/g/9/g' ipv6words80-7.txt
Now, we will sort for unique values one more time, and be done!
$ sort -u ipv6words80-7.txt > ipv6words80-8.txt
Now, starting with our original word list, we will end up with proper names, acronyms, and infrequently used words. We could optionally use a different word list that doesn’t contain these words, but I decided to keep them for a more complete list.
Also, this list may not contain many of the slang words and such that are common in today’s language.
As you can see from the list below, we can create an IPv6 address such as 2001:db8::ea7:beef:7ac0:d0g5 (eat beef taco dogs!).
And now, here is our completed IPv6 word list!
1 10 100 1005 1007 100f 1010 1011 1015 101a 101d 105 1055 1057 105e 107 1070 1071 1075 1077 107a 107e 109 1090 1095 109e 10a 10a5 10ad 10af 10b 10b0 10b1 10b5 10be 10c0 10c1 10ca 10d1 10d2 10da 10de 10eb 10ed 10f7 11 110 1105 111 1110 1111 1115 1117 111a 112 1125 112a 115 1157 115a 115e 117 1175 117e 119 1195 11a 11a0 11a5 11b 11b5 11ce 11d 11d0 11d5 11de 11e 11e5 11ea 11ed 11ef 11f0 11f7 11fe 120d 12ba 15 150 151 1515 151a 151e 157 15a7 15ba 15d 15d5 17 170 1711 175 17a 17a1 17a5 17d 19 190 1905 199 1995 19a 19ad 19b0 19e 1a 1a0 1a05 1a10 1a11 1a1a 1a1c 1a1d 1a1e 1a2e 1a5 1a51 1a55 1a57 1a5e 1a7 1a71 1a75 1a7a 1a7e 1a9 1a90 1a95 1aa 1aa5 1ab 1ab5 1abe 1ac 1ac5 1ace 1ad 1ad5 1add 1ade 1aea 1aff 1b 1b0 1b05 1b15 1b1d 1b5 1c 1ca0 1cc 1cd 1cd5 1ce 1ce1 1ce5 1ced 1d 1d0 1d01 1d05 1d1 1d15 1d1e 1d5 1da 1da5 1dc 1de 1de5 1dea 1ded 1dee 1e 1e0 1e05 1e1 1e15 1e1a 1e1f 1e2 1e5 1e55 1e57 1e5a 1e7 1e70 1e75 1e77 1e7a 1e9 1e90 1e95 1ea 1ea1 1ea5 1ea7 1ead 1eaf 1eb0 1ec7 1ed 1ed5 1eda 1ee 1ee5 1ee7 1eed 1ef7 1f 1f5 1fc 1fc5 1ff 2 20 200 2001 2005 201a 201c 205 20a 20b0 20e 20e5 20ea 2111 211a 212 2122 217 2171 2175 217e 219 2195 21b0 21ff 222 25 2a 2a5 2a71 2a9 2a95 2e1 2e11 2e15 2e2e 2e57 2e7a 2ea 2ea1 2ea5 2ed 2ed5 2ee 2ee5 5 50 5001 5007 501 5010 5011 5015 501a 501d 501e 505 5050 5055 505a 507 5070 5075 509 5095 50b 50b5 50ba 50c 50c5 50ca 50d 50d5 50da 50f7 50fa 51 5107 5109 510b 510e 5110 5111 5117 511a 511d 511e 512e 515 5155 5157 517 5175 517a 517e 519 51a1 51a5 51a7 51a9 51ab 51b 51b5 51bb 51c 51c5 51ce 51d 51d5 51da 51de 51e 51ed 51ee 51f7 55 555 557 55a 55e 55e5 57 5701 5707 570a 570b 575 579 579e 57a 57a7 57a9 57ab 57d 57e 57e7 57ed 59 597 59d 5a 5a1 5a11 5a15 5a17 5a1c 5a1d 5a1e 5a2 5a55 5a5a 5a5e 5a7 5a71 5a75 5a7e 5a9 5a90 5a95 5a9a 5a9e 5aab 5ab 5ab5 5aba 5abe 5ac 5ac0 5ac5 5ad 5ad1 5ade 5afe 5b 5b5 5ba 5c 5c07 5c09 5c1 5c10 5c5 5c51 5ca7 5ca9 5cab 5cad 5d 5d1 5e 5e1 5e11 5e12 5e15 5e1d 5e1e 5e1f 5e2 5e5 5e55 5e5e 5e7 5e75 5e77 5e7a 5e9 5e90 5e95 5e9a 5ea 5ea1 5ea5 5ea7 5ec 5ec0 5ec5 5ec7 5ed 5ee 5ee1 5ee5 5eed 5f 7 70 700 7001 7007 7011 7017 701a 701d 701e 702e 7055 705a 705e 707 7070 7072 7075 707e 709 7090 7095 709a 70ad 70b 70be 70c 70c0 70d 70d5 70dd 70e 70e5 70ea 70ed 70f7 70ff 71 711 7111 7115 7117 711e 7122 715 717 7170 7171 7175 717e 719 7195 719e 71a 71a5 71b 71b5 71c 71c5 71ce 71d 71d5 71de 71e 71e5 71ed 71f7 71ff 75 791f 7a 7a0 7a05 7a1 7a11 7a15 7a17 7a19 7a1a 7a1c 7a1e 7a1f 7a5 7a55 7a7 7a71 7a75 7a77 7a7e 7a9 7a95 7aa1 7ab 7ab1 7ab5 7ac0 7ac7 7ace 7ad 7ad5 7ae1 7af 7af7 7b 7b5 7ba 7c 7c5 7cdd 7d 7dd 7e 7e1 7e11 7e15 7e17 7e1a 7e1d 7e1e 7e5 7e51 7e55 7e57 7e7 7e75 7e7e 7e9 7e95 7e99 7ea 7ea1 7ea5 7ea7 7ead 7ed 7ed5 7ee 7ee1 7ee5 7eed 7ef 7ef1 7ef5 7eff 9 90 900 9001 9005 9009 900d 900f 901d 901f 905 9055 907 909 9090 90a 90a1 90a5 90a7 90ad 90af 90b 90b0 90b1 90b5 90d 90d5 90e1 90e5 90ff 91 910 9105 910b 911 9111 9115 9117 911a 911b 911d 911e 9122 912a 915 9157 917 9175 917a 917e 919 9190 9191 9195 919a 91ad 91b 91b5 91be 91d 91d5 91de 91e 91e1 91e5 91e9 91ed 91ee 91f 91f7 95 95a 97 97d 97e 97e5 9a 9a0 9a1 9a11 9a15 9a17 9a1a 9a1d 9a1e 9a2 9a2a 9a2e 9a5 9a55 9a57 9a7 9a75 9a77 9a7e 9a9 9a95 9a9a 9a9e 9ab 9ab0 9ab5 9aba 9ad 9ad1 9ad5 9ade 9ae1 9ae5 9aea 9aff 9b 9b5 9ca 9d 9d5 9e 9e0 9e01 9e05 9e09 9e0d 9e1 9e15 9e1d 9e5 9e57 9e7 9e72 9e75 9e7a 9ea1 9ea7 9ed 9ed5 9ee 9ee2 9ee5 9eed 9eff 9f1 9fc1 a a01 a015 a1 a10d a10e a11 a115 a11f a15 a150 a17 a170 a175 a17a a19 a19a a1a a1a1 a1a5 a1ae a1b a1b1 a1b5 a1ba a1be a1c0 a1d a1d0 a1d5 a1da a1de a1e a1e5 a1ea a1ec a1ee a1ef a1f a1f5 a1fa a2 a20 a21e a25 a27 a275 a5 a51 a515 a51a a55 a555 a557 a571 a5a a5a5 a5a7 a5c0 a5c1 a5ea a7 a70c a711 a75 a77 a7c a7c0 a7e a7e5 a9 a90 a909 a910 a95 a9a a9a5 a9c a9e a9e5 a9ed a9ee aa aa1 aa15 aa5 aaa ab ab0 ab05 ab1 ab1b ab1e ab5 ab55 aba aba5 abac abb abb5 abba abbe abc abc5 abd abd5 abe abe1 abe5 abe7 abed ac ac15 ac1d ac5 ac7 ac75 ac79 ac7a acc acc7 ace ace5 aced ad ad0 ad05 ad17 ad2e ad5 ada ada5 adc add add5 ade1 ae aec aec5 af af7 afb afc afdc aff b b0 b00 b005 b007 b00b b01 b010 b011 b017 b01a b01d b01e b02 b020 b05 b055 b05c b05e b07 b070 b075 b077 b07a b09 b095 b09a b0a b0a2 b0a5 b0a7 b0b b0b5 b0ba b0d b0d5 b0de b0ff b1 b10 b101 b105 b107 b109 b10b b10c b111 b11e b12 b125 b12e b15 b17 b170 b175 b177 b17e b19 b195 b199 b19a b1a b1a5 b1a7 b1a9 b1ab b1ad b1ae b1b b1b1 b1b5 b1bb b1c b1c5 b1ce b1d b1d1 b1d5 b1d9 b1de b1e1 b1e7 b1eb b1ed b1ee b1ff b5 b55 b5a b5d b5d5 b7 b71 b75 ba ba1 ba11 ba15 ba17 ba1a ba1d ba1e ba5 ba55 ba57 ba5e ba7 ba75 ba77 ba7e ba9 ba95 baa baa1 baa5 bab bab1 bab5 baba babb babe bac7 bad bad5 bade bae2 baf7 baff bb bb1 bb15 bb5 bbb bbc bc bc5 bc9 bcd bd bd1 be be1 be11 be15 be17 be19 be1a be2 be5 be55 be57 be7 be75 be7a be7e be9 be90 be95 bea7 bead bebe bed bed5 bede bee bee5 bee7 beeb beef bf c c0 c00 c001 c005 c007 c00f c01 c010 c011 c015 c017 c01a c01d c01e c01f c02 c02e c05 c055 c057 c05e c07 c075 c077 c07e c09 c095 c0a1 c0a7 c0b c0b5 c0bb c0c0 c0ca c0d c0d5 c0da c0de c0ed c0f7 c0ff c1 c105 c107 c109 c10d c110 c111 c117 c15 c157 c15c c17 c170 c175 c17e c19 c195 c1a c1a0 c1a5 c1a9 c1ad c1d c1e0 c1e9 c1ef c2 c5 c57 c575 c5c c7 c75 c9 ca ca1 ca10 ca11 ca1d ca1e ca1f ca5 ca55 ca57 ca5a ca5e ca7 ca70 ca75 ca77 ca7e ca9e caa cab cab5 caba caca cad cad1 cad5 cade cafe caff cb cb5 cbc cbc5 cc cc5 ccd cd cd5 cd7 cdc ce ce0 ce05 ce1 ce11 ce15 ce17 ce5 ce55 ce70 ce7e cea cea5 ceca ced1 cede cee cee5 cf cf0 cf5 cfc cfc5 d d0 d00 d001 d005 d00b d01 d011 d015 d017 d01a d01e d02 d02e d05 d055 d057 d05e d07 d075 d07e d09 d095 d09e d0a d0a7 d0ab d0b d0b5 d0be d0c d0c5 d0d d0d0 d0d5 d0e d0e5 d0ff d1 d10 d101 d105 d111 d15 d155 d157 d15a d15c d17 d172 d175 d177 d17a d17e d19 d195 d1a1 d1a5 d1a9 d1b d1b5 d1c7 d1ce d1d d1d0 d1e d1e1 d1e5 d1e7 d1eb d1ed d1f d1f5 d1ff d2 d20 d205 d5 d50 d505 d57 d75 d7d d9 d95 da da1 da11 da15 da17 da1e da2e da5 da55 da57 da7 da70 da75 da7a da7e da9 da90 da95 daa1 dab dab5 dace dad dad0 dad5 dada dadd dae daf7 daff db db1 db5 dc dc5 dd dd1 dd5 dd55 dd7 dd75 ddc ddd dde dded de de0 de05 de1 de11 de15 de17 de1d de1e de1f de5 de55 de5c de9 dea dea1 dead deaf deb deb5 deb7 dec dec0 dec1 dec5 decd dee dee5 dee7 deed def def1 def7 e e0 e01a e05 e055 e0e e1 e10 e105 e11 e112 e115 e11a e11d e15 e15a e15e e17 e175 e199 e1a e1ba e1be e1c0 e1d e1d5 e1de e1ea e1f e1f5 e2 e2e1 e5 e51 e55 e55e e57 e575 e57e e5c e5d e5e e5e5 e7 e71c e77a e7a e7a5 e7a7 e7c e7d e9 e90 e905 e99 e990 e995 e9a1 e9ad ea ea1e ea5 ea57 ea5e ea7 ea75 ead5 ebb ebb5 ec ec0 ec01 ec05 ec0d ec9 ec95 ecad ecc0 ecc1 ecce ed ed0 ed05 ed17 ed5 ed7 ed7a ed9e edb edd0 edda ede ee ee0 ee0c ee1 ee15 ee9 ee95 eec eec5 ef ef1 ef5 ef7 ef75 ef7a eff eff5 f f0 f00 f001 f005 f007 f00d f01 f011 f01a f01d f055 f09 f095 f0a1 f0b f0b5 f0e f0e5 f0f1 f1 f10 f105 f109 f10c f10e f11 f110 f111 f115 f117 f11a f11c f11e f12 f122 f157 f15c f17 f175 f177 f19 f190 f195 f1a f1a7 f1a9 f1ab f1b f1b5 f1c0 f1ca f1ce f1d f1d0 f1d5 f1de f1e f1e5 f1ea f1ed f1ee f1ef f1f0 f1fe f5 f5f f7 f75 f7c fa fa0 fa05 fa11 fa1a fa2e fa5 fa57 fa7 fa75 fa7e fa9 fa95 faa fab fab5 fac fac7 face fad fad0 fad5 fade faff fb1 fb15 fca fcc fd fd1c fda fe fe0d fe11 fe15 fe17 fe2 fe25 fe5 fe55 fe57 fe7 fe75 fe7a fe7e fe95 fea1 fea7 feb feb5 fec fed fed5 fee fee1 fee5 fee7 feeb feed ff
Of course, some words can be hard to read (200 = zoo), but this is really just for fun, so who cares?!
Here is a simple little bash script that will take any word list as input and create a list of valid IPv6 words for you. Enjoy!
#!/bin/bash VERSION=0.6 TMPOUT1=/tmp/ipv6words1 TMPOUT2=/tmp/ipv6words2 if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then echo echo "Make IPv6 Word List version $VERSION" echo "Copyright 2013 Sophiedogg.com" echo "This script may be freely used and distrubuted, so long as credit" echo "to the original author remains in place." echo echo "Usage: $0 [wordlist]" echo echo "This script will make a list of IPv6 words from the input file." echo "An output file will be created in the same location as the" echo "original file, with the extension .ipv6words." echo echo "Options:" echo " -h, --help display this help message" echo elif [ ! $1 ]; then echo echo "You must specify a word list to start from." echo echo "Usage: $0 [wordlist]" echo else if [ ! -e $1 ]; then echo echo "File $1 does not exist" echo else echo grep -iv 'h\|j\|k\|m\|n\|p\|q\|r\|u\|v\|w\|x\|y' $1 > $TMPOUT1 perl -pi -e 's/\xC0/A/g' $TMPOUT1 perl -pi -e 's/\xC1/A/g' $TMPOUT1 perl -pi -e 's/\xC2/A/g' $TMPOUT1 perl -pi -e 's/\xC3/A/g' $TMPOUT1 perl -pi -e 's/\xC4/A/g' $TMPOUT1 perl -pi -e 's/\xC5/A/g' $TMPOUT1 perl -pi -e 's/\xC6/AE/g' $TMPOUT1 perl -pi -e 's/\xC7/C/g' $TMPOUT1 perl -pi -e 's/\xC8/E/g' $TMPOUT1 perl -pi -e 's/\xC9/E/g' $TMPOUT1 perl -pi -e 's/\xCA/E/g' $TMPOUT1 perl -pi -e 's/\xCB/E/g' $TMPOUT1 perl -pi -e 's/\xCC/I/g' $TMPOUT1 perl -pi -e 's/\xCD/I/g' $TMPOUT1 perl -pi -e 's/\xCE/I/g' $TMPOUT1 perl -pi -e 's/\xCF/I/g' $TMPOUT1 perl -pi -e 's/\xD0/D/g' $TMPOUT1 perl -pi -e 's/\xD1/N/g' $TMPOUT1 perl -pi -e 's/\xD2/O/g' $TMPOUT1 perl -pi -e 's/\xD3/O/g' $TMPOUT1 perl -pi -e 's/\xD4/O/g' $TMPOUT1 perl -pi -e 's/\xD5/O/g' $TMPOUT1 perl -pi -e 's/\xD6/O/g' $TMPOUT1 perl -pi -e 's/\xD8/O/g' $TMPOUT1 perl -pi -e 's/\xD9/U/g' $TMPOUT1 perl -pi -e 's/\xDA/U/g' $TMPOUT1 perl -pi -e 's/\xDB/U/g' $TMPOUT1 perl -pi -e 's/\xDC/U/g' $TMPOUT1 perl -pi -e 's/\xDD/Y/g' $TMPOUT1 perl -pi -e 's/\xDF/B/g' $TMPOUT1 perl -pi -e 's/\xE0/a/g' $TMPOUT1 perl -pi -e 's/\xE1/a/g' $TMPOUT1 perl -pi -e 's/\xE2/a/g' $TMPOUT1 perl -pi -e 's/\xE3/a/g' $TMPOUT1 perl -pi -e 's/\xE4/a/g' $TMPOUT1 perl -pi -e 's/\xE5/a/g' $TMPOUT1 perl -pi -e 's/\xE6/ae/g' $TMPOUT1 perl -pi -e 's/\xE7/c/g' $TMPOUT1 perl -pi -e 's/\xE8/e/g' $TMPOUT1 perl -pi -e 's/\xE9/e/g' $TMPOUT1 perl -pi -e 's/\xEA/e/g' $TMPOUT1 perl -pi -e 's/\xEB/e/g' $TMPOUT1 perl -pi -e 's/\xEC/i/g' $TMPOUT1 perl -pi -e 's/\xED/i/g' $TMPOUT1 perl -pi -e 's/\xEE/i/g' $TMPOUT1 perl -pi -e 's/\xEF/i/g' $TMPOUT1 perl -pi -e 's/\xF0/o/g' $TMPOUT1 perl -pi -e 's/\xF1/n/g' $TMPOUT1 perl -pi -e 's/\xF2/o/g' $TMPOUT1 perl -pi -e 's/\xF3/o/g' $TMPOUT1 perl -pi -e 's/\xF4/o/g' $TMPOUT1 perl -pi -e 's/\xF5/o/g' $TMPOUT1 perl -pi -e 's/\xF6/o/g' $TMPOUT1 perl -pi -e 's/\xF8/o/g' $TMPOUT1 perl -pi -e 's/\xF9/u/g' $TMPOUT1 perl -pi -e 's/\xFA/u/g' $TMPOUT1 perl -pi -e 's/\xFB/u/g' $TMPOUT1 perl -pi -e 's/\xFC/u/g' $TMPOUT1 perl -pi -e 's/\xFD/y/g' $TMPOUT1 perl -pi -e 's/\xFF/y/g' $TMPOUT1 grep -E '^[[:alpha:]]{4}$' $TMPOUT1 > $TMPOUT2 grep -E '^[[:alpha:]]{3}$' $TMPOUT1 >> $TMPOUT2 grep -E '^[[:alpha:]]{2}$' $TMPOUT1 >> $TMPOUT2 grep -E '^[[:alpha:]]{1}$' $TMPOUT1 >> $TMPOUT2 tr '[A-Z]' '[a-z]' < $TMPOUT2 > $TMPOUT1 grep -v ^o $TMPOUT1 > $TMPOUT2 sort -u $TMPOUT2 > $TMPOUT1 sed -i 's/o/0/g' $TMPOUT1 sed -i 's/i/1/g' $TMPOUT1 sed -i 's/l/1/g' $TMPOUT1 sed -i 's/z/2/g' $TMPOUT1 sed -i 's/s/5/g' $TMPOUT1 sed -i 's/t/7/g' $TMPOUT1 sed -i 's/g/9/g' $TMPOUT1 sort -u $TMPOUT1 > $TMPOUT2 rm -rf $TMPOUT1 mv $TMPOUT2 $1.ipv6words echo "Output written to $1.ipv6words" echo fi fi
[…] I did a post on how to have some Fun With IPv6 Words, and how to generate an IPv6 word list, but one request I keep getting is for a smaller list of […]
Very clever, thanks for explaining the whole process!
That’s an awesome idea!