dec2string fonction ($ décimal, $ base) { global $ erreur; $ Chaine = null; $ Base = (int) $ de base; if ($ base <2 | | $ de base> 36 | | $ base == 10) { echo 'BASE doit être dans la gamme 2-9 ou 11-36'; sortie; } $ Charset = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ '; $ Charset = substr ($ charset, 0, $ base); if (! ereg ('(^ [0-9] {1,16} $)', trim ($ décimal))) { $ Erreur ['dec_input'] = 'La valeur doit être un entier positif'; return false; } do { $ Reste = bcmod ($ décimal, $ base); $ Char = substr (charset $, $ reste, 1); / / récupère CHAR de tableau $ Chaine = "$ $ char chaîne"; / / prepend à la sortie $ Décimal = bcdiv (bcsub ($ décimal, $ reste), $ base); } While ($ décimal> 0); retourner une chaîne $; } fonction string2dec ($ string, $ base) { global $ erreur; $ Décimal = 0; $ Base = (int) $ de base; if ($ base <2 | | $ de base> 36 | | $ base == 10) { echo 'BASE doit être dans la gamme 2-9 ou 11-36'; sortie; } $ Charset = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ '; $ Charset = substr ($ charset, 0, $ base); $ Chaine = trim ($ string); if (empty ($ string)) { $ Erreur [] = 'La chaîne d'entrée est vide »; return false; } do { $ Char = substr ($ chaine, 0, 1); / / extraire personnage principal $ Chaine = substr ($ chaine, 1); / / baisse personnage principal Pos dollar = strpos ($ charset, $ char); / / se offset $ charset if ($ pos === false) { $ Erreur [] = "Caractère illégal ($ char) dans la chaîne INPUT"; return false; } $ Décimal = bcadd (bcmul ($ décimal, $ base), $ pos); } While ($ string <> null); return $ décimal; } touche de fonction ($ str, $ num) { retourner str_repeat ("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 ["dot"]) && $ _GET ["dot"]! = "") { $ Ip = ip2long ($ _GET ["dot"]); } d'autre { $ Ip = 0; } $ Uns_ip = ($ ip> 0 $ ip:? 0xffffffff + $ ip + 1) + 0; if (($ uns_ip & 0 × 80000000) == 0) { $ Masque = 0xFF000000; } else if (($ uns_ip & 0xC0000000) == -2147483648) { $ Masque = 0xffff0000; } else if (($ uns_ip & 0xE0000000) == -1073741824) { $ Masque = 0xffffff00; } d'autre { $ Masque = ""; } $ 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); ?> Résultat de la conversion | Dot notation | =$dot_ip?> |
|---|
| Nombre décimal | =$ip?> |
|---|
| Nombre décimal non signé | =$uns_ip?> |
|---|
| Nombre hexadécimal | =$hex_ip?> |
|---|
| Nombre binaire | =$bin_ip?> |
|---|
| Nombre octal | =$oct_ip?> |
|---|
| Masque naturel | echo "$mask (".long2ip($mask).") " ?> |
|---|
} ?> | |