功能dec2string(约合十进制,$基地) { 全局$错误; $字符串= NULL; $基地=(int)的基地; ($基地<2 | | $基地> 36 | | $基地== 10){ 回声“基地必须在2-9或11-36”范围; 退出; } 字符集= '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ“; $字符集= SUBSTR($字符集,0,$基地); 如果(!比ereg(“(^ [0-9] {1,16} $),装饰(十进制))){ 错误[dec_input'] ='的值必须是一个正整数“; 返回false; } 做{ $的余下= bcmod(十进制,$基地); $字符= SUBSTR($字符集,其余部分,1); / /获取数组的CHAR $字符串=“$字符$字符串”/ /前置输出 美元小数= bcdiv(bcsub(十进制美元,余下部分),$基地); }而(十进制> 0); 返回的字符串; } 功能string2dec(字符串$,$基地) { 全局$错误; 美元小数= 0; $基地=(int)的基地; ($基地<2 | | $基地> 36 | | $基地== 10){ 回声“基地必须在2-9或11-36”范围; 退出; } 字符集= '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ“; $字符集= SUBSTR($字符集,0,$基地); $字符串= TRIM(字符串美元); (空字符串)($){ 错误[] ='输入字符串为空“; 返回false; } 做{ $字符= SUBSTR(字符串,0,1); / /提取主人公 $字符串= SUBSTR(字符串,1); / /下降的主角 $ POS = strpos($字符集,字符); / /获取$字符集偏移 (POS === FALSE){ 错误[] =“非法字符(char)的输入字符串”; 返回false; } 十进制= bcadd(bcmul(十进制,$基地),$ POS); }而($字符串<> NULL); 返回小数; } 功能垫($ STR,$ num个) { 返回str_repeat(“0”,$ NUM - 函数strlen($ STR))$ STR。; } / /主 如果(使用isset($ _GET“提交”])) { $ IP = 0; 如果(使用isset($ _GET [“INT”])&& $ _GET [“INT”] =“”) { $ IP = $ _GET [“诠释”]; } 否则,如果(使用isset($ _GET [“点”])&& $ _GET [“点”] =“”) { $ IP = ip2long($ _GET [“点”]); } 其他 { $ IP = 0; } uns_ip =($ IP> 0 $ IP:为0xffffffff + IP + 1)+ 0; ((uns_ip&0×80000000)== 0美元) { 面具=为0xff000000; } 否则,如果((uns_ip美元及0xC0000000的),== -2147483648) { $面具= 0xFFFF0000地址; } 否则,如果((uns_ip美元及0xE0000000)== -1073741824) { $面具= 0xffffff00; } 其他 { $面具=“”; } dot_ip = long2ip(uns_ip美元); hex_ip = dec2string(uns_ip美元,16); $ hex_ip =“0x”的垫($ hex_ip,8); oct_ip = dec2string(uns_ip美元,8); $ oct_ip =“0”垫($ oct_ip,16)。; bin_ip = dec2string(uns_ip,2元); 美元bin_ip垫($ bin_ip,32); ?> 转换结果 | 点符号 | =$dot_ip?> |
|---|
| 十进制数 | =$ip?> |
|---|
| 无符号十进制数 | =$uns_ip?> |
|---|
| 十六进制数。 | =$hex_ip?> |
|---|
| 二进制数 | =$bin_ip?> |
|---|
| 八进制数 | =$oct_ip?> |
|---|
| 自然掩码 | echo "$mask (".long2ip($mask).") " ?> |
|---|
} ?> |