dec2string função ($ decimal, $ base) { $ erro global; $ String = null; $ Base = (int) base de US $; if (base de US $ <2 | base $ |> 36 | base $ == 10 |) { echo 'BASE deve estar na faixa de 2-9 ou 11-36; saída; } $ Charset = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ '; $ Charset = substr ($ charset, 0, $ base); if (! ereg ('(^[ 0-9] {1,16 }$)', trim ($ decimal))) { $ Error ['dec_input'] = 'O valor deve ser um inteiro positivo; return false; } do { $ Resto = bcmod ($ decimal, $ base); $ Char = substr ($ charset, $ restante, 1); / / get CHAR da matriz $ String = "$ $ string caractere" / prepend / a saída $ Decimal = bcdiv (bcsub ($ decimal, restante $), $ base); } While ($ decimal> 0); return $ string; } função string2dec ($ string, $ base) { $ erro global; $ Decimal = 0; $ Base = (int) base de US $; if (base de US $ <2 | base $ |> 36 | base $ == 10 |) { echo 'BASE deve estar na faixa de 2-9 ou 11-36; saída; } $ Charset = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ '; $ Charset = substr ($ charset, 0, $ base); $ String = trim ($ string); if (empty ($ string)) { $ Error [] = 'string de entrada está vazia'; return false; } do { $ Char = substr ($ string, 0, 1); / / extract personagem principal $ String = substr ($ string, 1); / drop / personagem principal $ Pos = strpos ($ charset, $ char); / / get deslocamento em $ charset if ($ pos === false) { $ Error [] = "caráter ilegal ($ char) na cadeia INPUT"; return false; } $ Decimal = bcadd (bcmul ($ decimal, $ base), $ pos); } While ($ string <> null); return $ decimal; } pad de função ($ str, $ num) { str_repeat retorno ("0", $ num - strlen ($ str)) $ str.; } / / Main if (isset ($ _GET ["submit"])) { $ Ip = 0; if (isset ($ _GET ["int"]) & & $ _GET ["int"]! = "") { $ Ip = $ _GET ["int"]; } else if (isset ($ _GET ["ponto"]) & & $ _GET ["ponto"]! = "") { $ Ip = ip2long ($ _GET ["ponto"]); } outro { $ Ip = 0; } $ Uns_ip = ($ ip> 0 $ ip: 0xffffffff ip + $ + 1) + 0; if (($ uns_ip & 0 × 80000000) == 0) { $ Mask = 0xFF000000; } else if (($ uns_ip & 0xC0000000) == -2147483648) { $ Mask = 0xFFFF0000; } else if (($ uns_ip & 0xE0000000) == -1073741824) { $ Mask = 0xffffff00; } outro { $ Mask = ""; } $ Dot_ip long2ip = ($ uns_ip); $ Hex_ip dec2string = ($ uns_ip, 16); Hex_ip $ pad = "0 x" ($ hex_ip, 8).; $ Oct_ip dec2string = ($ uns_ip, 8); $ Oct_ip = "0" pad ($ oct_ip, 16).; $ Bin_ip dec2string = ($ uns_ip, 2); $ Bin_ip = pad ($ bin_ip, 32); ?> Resultado da conversão | Dot notação | =$dot_ip?> |
|---|
| Número decimal | =$ip?> |
|---|
| Número decimal sem sinal | =$uns_ip?> |
|---|
| Número hexadecimal | =$hex_ip?> |
|---|
| Número binário | =$bin_ip?> |
|---|
| Número octal | =$oct_ip?> |
|---|
| Netmask Natural | echo "$mask (".long2ip($mask).") " ?> |
|---|
} ?> | |