toiminto dec2string ($ desimaali, $ pohja) { global $ error; $ String = null; $ Base = (int) $ pohja; if ($ pohja <2 | | $ base> 36 | | $ base == 10) { echo "BASE tulee olla välillä 2-9 tai 11-36"; exit; } $ Charset = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ '; $ Charset = substr ($ charset, 0, $ pohja); if (! ereg ('(^ [0-9] {1,16} $) ", trim ($ desimaali))) { $ Error ['dec_input'] = 'Arvon on oltava positiivinen kokonaisluku "; palauttaa false; } do { $ Loppuosa = bcmod ($ desimaali, $ pohja); $ Char = substr ($ charset, $ loppuosa, 1); / / saat MERKKI siitä array $ String = "$ char $ string", / / prepend lähtöön $ Desimaali = bcdiv (bcsub ($ desimaali, $ loput), $ pohja); } While ($ desimaali> 0); palauttaa $ string; } toiminto string2dec ($ merkkijono, $ pohja) { global $ error; $ Desimaalin = 0; $ Base = (int) $ pohja; if ($ pohja <2 | | $ base> 36 | | $ base == 10) { echo "BASE tulee olla välillä 2-9 tai 11-36"; exit; } $ Charset = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ '; $ Charset = substr ($ charset, 0, $ pohja); $ String = trim ($ string); if (empty ($ string)) { $ Error [] = 'Input merkkijono on tyhjä "; palauttaa false; } do { $ Char = substr ($ string, 0, 1); / / poimia päähenkilö $ String = substr ($ string, 1); / / drop päähenkilö $ Pos = strpos ($ charset, $ char); / / saa korvata dollarin charset if ($ pos === false) { $ Error [] = "Virheellinen merkki ($ merkkiä) Input string"; palauttaa false; } $ Desimaali = bcadd (bcmul ($ desimaali, $ pohja), $ pos); } While ($ string <> null); palauttaa $ desimaalin; } toiminto pad ($ str, $ num) { palauttaa str_repeat ("0", $ num - strlen ($ str)). $ str; } / / Main if (isset ($ _GET ["submit"])) { $ IP = 0; if (isset ($ _GET ['int']) && $ _GET ['int']! = "") { $ Ip = $ _GET ['int']; } if (isset ($ _GET ["piste"]) && $ _GET ["piste"]! = "") { $ Ip = ip2long ($ _GET ["piste"]); } muu { $ IP = 0; } $ Uns_ip = ($ ip> 0? $ Ip: 0xffffffff + $ ip + 1) + 0; if (($ uns_ip & 0 × 80000000) == 0) { $ Mask = 0xff000000; } if (($ uns_ip & 0xC0000000) == -2147483648) { $ Mask = 0xffff0000; } if (($ uns_ip & 0xE0000000) == -1073741824) { $ Mask = 0xffffff00; } muu { $ 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 tulos | Dot merkintätapa | =$dot_ip?> |
|---|
| Desimaaliluku | =$ip?> |
|---|
| Allekirjoittamaton desimaaliluku | =$uns_ip?> |
|---|
| Heksadesimaalinumero | =$hex_ip?> |
|---|
| Binääriluku | =$bin_ip?> |
|---|
| Oktaalilukuna | =$oct_ip?> |
|---|
| Natural netmask | echo "$mask (".long2ip($mask).") " ?> |
|---|
} ?> | |