función de dec2string ($ decimal, $ base) { global de $ error; $ Cadena = null; $ Base = (int) $ base; if ($ base de <2 | | base de $> 36 | | base de $ == 10) { eco "BASE debe estar en el intervalo 2-9 o 11-36 '; salida; } Charset = $ '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ '; $ Charset = substr ($ charset, 0, $ base); if (! ereg ("(^ [0-9] {1,16} $) ', trim ($ decimales))) { $ Error ['dec_input'] = 'El valor debe ser un entero positivo "; return false; } do { $ Resto = bcmod ($ decimal, $ base); $ Char = substr ($ charset, $ resto, 1); / / obtener el CHAR de la matriz $ Cadena = "$ $ char"; / / anteponer a la salida $ Decimal = bcdiv (bcsub ($ decimal, $ resto), $ base); } While ($ decimal> 0); return $ cadena; } función de string2dec ($ cadena, $ base) { global de $ error; $ Decimal = 0; $ Base = (int) $ base; if ($ base de <2 | | base de $> 36 | | base de $ == 10) { eco "BASE debe estar en el intervalo 2-9 o 11-36 '; salida; } Charset = $ '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ '; $ Charset = substr ($ charset, 0, $ base); $ Cadena = trim ($ cadena); if (empty ($ cadena)) { $ Error [] = 'La cadena de entrada está vacía'; return false; } do { $ Char = substr ($ cadena, 0, 1); / / extraer el personaje principal $ Cadena = substr ($ cadena, 1); / / caída de protagonista $ Pos = strpos ($ charset, $ char); / / obtener compensación en $ charset if ($ pos === false) { $ Error [] = "Carácter ilegal ($ char) en la cadena de entrada"; return false; } $ Decimal = bcadd (bcmul ($ decimal, $ base), $ pos); } While ($ cadena <> NULL); return $ decimal; } la función de control ($ cadena, $ num) { volver str_repeat ("0", $ num - strlen ($ str)) $ str.; } / / Main if (isset ($ _GET ["enviar"])) { $ Ip = 0; if (isset ($ _GET ["int"]) && $ _GET ["int"]! = "") { $ Ip = $ _GET ["int"]; } else if (isset ($ _GET ["DOT"]) && $ _GET ["punto"]! = "") { $ Ip = ip2long ($ _GET ["punto"]); } más { $ Ip = 0; } $ Uns_ip = ($ ip> 0 $ ip: 0xffffffff + $ ip + 1) + 0; if (($ uns_ip y 0 × 80000000) == 0) { $ Mask = 0xFF000000; } else if (($ uns_ip y 0xC0000000) == -2147483648) { $ Mask = 0xFFFF0000; } else if (($ uns_ip y 0xE0000000) == -1073741824) { $ Mask = 0xffffff00; } más { $ Mask = ""; } $ Dot_ip long2ip = ($ uns_ip); $ Hex_ip dec2string = ($ uns_ip, 16); $ Hex_ip = "0x" pad ($ 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); > Conversión resultado | Dot anotación | =$dot_ip?> |
|---|
| Número decimal | =$ip?> |
|---|
| Número decimal sin signo | =$uns_ip?> |
|---|
| Número hexadecimal | =$hex_ip?> |
|---|
| Número binario | =$bin_ip?> |
|---|
| Octal número de | =$oct_ip?> |
|---|
| Máscara de red natural | echo "$mask (".long2ip($mask).") " ?> |
|---|
} ?> | |