Funktion dec2string ($ decimal, $ base) { global $ error; $ String = null; $ Base = (int) $ base; if ($ base <2 | | $ base> 36 | | $ base == 10) { echo 'BASE muss im Bereich 2-9 oder 11-36 sein'; exit; } $ Charset = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ '; $ Charset = substr ($ charset, 0, $ base); if (! ereg ('(^ [0-9] {1,16} $)', trim ($ decimal))) { $ Error ['dec_input'] = 'Der Wert muss eine positive ganze Zahl sein'; return false; } do { $ Rest = bcmod ($ decimal, $ base); $ Char = substr ($ charset, $ Rest, 1); / / get Saibling aus Array $ String = "$ $ char string"; / / Am Anfang der Ausgabe $ Dezimal = bcdiv (bcsub ($ decimal, $ Rest), $ base); } While ($ dezimal> 0); return $ string; } Funktion string2dec ($ string, $ base) { global $ error; $ Decimal = 0; $ Base = (int) $ base; if ($ base <2 | | $ base> 36 | | $ base == 10) { echo 'BASE muss im Bereich 2-9 oder 11-36 sein'; exit; } $ Charset = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ '; $ Charset = substr ($ charset, 0, $ base); $ String = trim ($ string); if (empty ($ string)) { $ Error [] = 'Input-String ist leer "; return false; } do { $ Char = substr ($ string, 0, 1); / / extrahieren führenden Charakter $ String = substr ($ string, 1); / / Drop Hauptfigur $ Pos = strpos ($ charset, $ char); / / in $ charset Offset erhalten if ($ pos === false) { $ Error [] = "Ungültige Zeichen ($ char) in INPUT-string"; return false; } $ Dezimal = bcadd (bcmul ($ decimal, $ base), $ pos); } While ($ string <> NULL); return $ dezimal; } Pad-Funktion ($ str, $ num) { zurück str_repeat ("0", $ num - strlen ($ str)) $ str.; } / / Main if (isset ($ _GET ["Eintragen"])) { $ Ip = 0; if (isset ($ _GET ["int"]) && $ _GET ["int"]! = "") { $ Ip = $ _GET ["int"]; } else if (isset ($ _GET ["Punkt"]) && $ _GET ["Punkt"]! = "") { $ Ip = ip2long ($ _GET ["Punkt"]); } sonst { $ 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; } sonst { $ 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); ?> Conversion Ergebnis | Dot-Notation | =$dot_ip?> |
|---|
| Dezimalzahl | =$ip?> |
|---|
| Unsigned Dezimalzahl | =$uns_ip?> |
|---|
| Hexadezimalzahl | =$hex_ip?> |
|---|
| Binärzahl | =$bin_ip?> |
|---|
| Oktalzahl | =$oct_ip?> |
|---|
| Natürliche Netzmaske | echo "$mask (".long2ip($mask).") " ?> |
|---|
} ?> | |