
The 5-letter (or less) .NET domain names are being used for the InterNAT field trials. Those provide FREE (as in $$s) allocations of static address space and ASNs for short names. http://ipv8.no-ip.com/cgi-bin/vanety25?a=L&b=U&c=N&d=I&e=_ Local help is available to set up your DSL and/or Cable sub-nets. It is best to have your .NET domain name before you attempt to connect. A.NET #include <stdio.h> /* * * vanety25 * * Convert a 5-symbol .NET name to prefix information. * * vanety25 addressing is based on a 32-Symbol Alphabet. * The 26 letters A to Z are included, along with the digits 0,8,1 and 3. * The (R) Symbol and Dash (-) are also included. * */ int addr; int asn; extern void v8_whois(int); main(argc,argv) int argc; char **argv; { int i; char c; char *p; char input[5]; printf("Content-type: text/html\n\n"); printf("<body><html><center><h3>InterNAT Resources for:</h3>"); if(argc != 2){ printf("example usage: %s -UNIR\n",argv[0]); exit(); } if(p = strstr(argv[1],"a=")){ input[0]= *(p+2); } else{ input[0] = 0; } if(p = strstr(argv[1],"b=")){ input[1]= *(p+2); } else{ input[1] = 0; } if(p = strstr(argv[1],"c=")){ input[2]= *(p+2); } else{ input[2] = 0; } if(p = strstr(argv[1],"d=")){ input[3]= *(p+2); } else{ input[3] = 0; } if(p = strstr(argv[1],"e=")){ input[4]= *(p+2); } else{ input[4] = 0; } addr=0; for(i=0; i<5; i++){ if(input[i] == 0){ break; } c = toupper(input[i]); if(isalpha(c)){ addr += c-'A'+1; } else{ switch(c){ case '0': addr += 27; break; case '8': addr += 28; break; case '1': addr += 29; break; case '3': addr += 30; break; case '-': addr += 31; } } addr <<= 5; } asn = addr>>5; printf("<b>"); v8_whois(addr); printf(".NET</b><br>\n"); printf("%d.%d.%d.%d.%d",(addr>>25)&0x1f,(addr>>20)&0x1f,(addr>>15)&0x1f,(addr>>10)&0x1f,(addr>>5)&0x1f); printf("<table border=3>"); for(i=0; i<4; i++){ printf("<tr><td align=center>"); v8_print_i32x5(addr); printf("</td><td align=center>\n"); printf("%d.%d.%d.%d",(addr>>24)&0xff,(addr>>16)&0xff,(addr>>8)&0xff,addr&0xff); printf("</td><td align=center>\n"); v8_print_i32x8(addr); printf("</td></tr>\n"); addr += 0x40000000; } printf("</table>\n"); printf("Mask: 63.255.255.224"); if((asn&0xFFFF8000)==0){ printf("<table border=3>\n"); printf("<tr><td align=center>"); printf("ASN0</td><td align=center>%d</td><td align=center>",asn); v8_print_i32x5(asn); printf("</td></tr>"); printf("<tr><td align=center>"); printf("ASN1</td><td align=center>%d</td><td align=center>",asn|0x8000); v8_print_i32x5(asn|0x8000); printf("</td></tr>"); printf("</table>\n"); } printf("</center>\n"); printf("</body>\n"); printf("</html>\n"); } #include <stdio.h> /* * * IPv8 Support Library * */ /* * * The IPv8 .NET alphabet consists of 32 symbols. * A void or 0 is represented as the (R) ® Symbol. * The letters A to Z are supported with only one case. * The numeric symbols 0, 8, 1 and 3 are also supported. * Lastly, the Dash (-) is included. * */ static char v8_alpha32_table[] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','8','1','3','-'}; /* * * Given a 32-bit value, extract and print the 25-bit prefix. * */ v8_whois(i) int i; { int j; int m; for(j=0; j<5; j++){ m=(i>>25)&0x1f; if(m==0){ printf("®"); } else{ putchar(v8_alpha32_table[m-1]); } i <<= 5; } } v8_print_i32x8(value) int value; { putchar(value&0x80000000?'1':'0'); putchar(value&0x40000000?'1':'0'); putchar(value&0x20000000?'1':'0'); putchar(value&0x10000000?'1':'0'); putchar(value&0x08000000?'1':'0'); putchar(value&0x04000000?'1':'0'); putchar(value&0x02000000?'1':'0'); putchar(value&0x01000000?'1':'0'); putchar('.'); putchar(value&0x00800000?'1':'0'); putchar(value&0x00400000?'1':'0'); putchar(value&0x00200000?'1':'0'); putchar(value&0x00100000?'1':'0'); putchar(value&0x00080000?'1':'0'); putchar(value&0x00040000?'1':'0'); putchar(value&0x00020000?'1':'0'); putchar(value&0x00010000?'1':'0'); putchar('.'); putchar(value&0x00008000?'1':'0'); putchar(value&0x00004000?'1':'0'); putchar(value&0x00002000?'1':'0'); putchar(value&0x00001000?'1':'0'); putchar(value&0x00000800?'1':'0'); putchar(value&0x00000400?'1':'0'); putchar(value&0x00000200?'1':'0'); putchar(value&0x00000100?'1':'0'); putchar('.'); putchar(value&0x00000080?'1':'0'); putchar(value&0x00000040?'1':'0'); putchar(value&0x00000020?'1':'0'); putchar(value&0x00000010?'1':'0'); putchar(value&0x00000008?'1':'0'); putchar(value&0x00000004?'1':'0'); putchar(value&0x00000002?'1':'0'); putchar(value&0x00000001?'1':'0'); } v8_print_i32x5(value) int value; { putchar(value&0x80000000?'1':'0'); putchar(value&0x40000000?'1':'0'); putchar('.'); putchar(value&0x20000000?'1':'0'); putchar(value&0x10000000?'1':'0'); putchar(value&0x08000000?'1':'0'); putchar(value&0x04000000?'1':'0'); putchar(value&0x02000000?'1':'0'); putchar('.'); putchar(value&0x01000000?'1':'0'); putchar(value&0x00800000?'1':'0'); putchar(value&0x00400000?'1':'0'); putchar(value&0x00200000?'1':'0'); putchar(value&0x00100000?'1':'0'); putchar('.'); putchar(value&0x00080000?'1':'0'); putchar(value&0x00040000?'1':'0'); putchar(value&0x00020000?'1':'0'); putchar(value&0x00010000?'1':'0'); putchar(value&0x00008000?'1':'0'); putchar('.'); putchar(value&0x00004000?'1':'0'); putchar(value&0x00002000?'1':'0'); putchar(value&0x00001000?'1':'0'); putchar(value&0x00000800?'1':'0'); putchar(value&0x00000400?'1':'0'); putchar('.'); putchar(value&0x00000200?'1':'0'); putchar(value&0x00000100?'1':'0'); putchar(value&0x00000080?'1':'0'); putchar(value&0x00000040?'1':'0'); putchar(value&0x00000020?'1':'0'); putchar('.'); putchar(value&0x00000010?'1':'0'); putchar(value&0x00000008?'1':'0'); putchar(value&0x00000004?'1':'0'); putchar(value&0x00000002?'1':'0'); putchar(value&0x00000001?'1':'0'); }
participants (1)
-
Jim Fleming