Функция dec2string ($ десятичной, $ базе) { глобальной $ ошибки; $ Строки = NULL; $ База = (INT) $ базы; если ($ база <2 | | $ база> 36 | | $ база == 10) { Эхо «База должна быть в диапазоне 2-9 или 11-36; выхода; } $ = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ Кодировки; $ Кодировка = подстрока ($ кодировки, 0, $ базы); если (! EREG ('(^ [0-9] {1,16} $), отделка ($ десятичное))) { $ Ошибки ['dec_input'] = 'Значение должно быть положительным целым числом "; вернуться ложным; } do { $ Остаток = bcmod ($ десятичной, $ базы); $ Символ = подстрока ($ кодировку, остальные $, 1); / / получаем CHAR из массива Строка $ = "$ символ $ строка"; / / добавляем к выходу $ Десятичной bcdiv (bcsub ($ десятичной, остальные $), $ базы); А} ($ десятичной> 0); return $ строку; } Функция string2dec ($ строка, $ базе) { глобальной $ ошибки; $ Десятичной = 0; $ База = (INT) $ базы; если ($ база <2 | | $ база> 36 | | $ база == 10) { Эхо «База должна быть в диапазоне 2-9 или 11-36; выхода; } $ = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ Кодировки; $ Кодировка = подстрока ($ кодировки, 0, $ базы); $ = Строка отделкой ($ строка); если (пусто ($ строка)) { $ Ошибка [] = 'пустой входной строке'; вернуться ложным; } do { $ Символ = подстрока ($ строка, 0, 1) / / извлечь ведущих характер $ = Строка подстрока ($ строка, 1); / / падение главного героя $ POS = strpos ($ кодировки, символ $) / / получить смещение в $ кодировки если ($ поз === FALSE) { $ Ошибка [] = "Недопустимый символ ($ символ) на входе строка"; вернуться ложным; } $ Десятичной bcadd (bcmul ($ десятичной, $ база), $ POS); А} ($ строка <> NULL); return $ запятой; } Функция панели ($ ул, $ пит) { вернуться str_repeat ("0", $ цилиндров - StrLen ($ строка)) $ ул. } / / Основной если (Исеть ($ _GET ["Отправить"])) { $ Ф = 0; если (Исеть ($ _GET ["INT"]) && $ _GET ["INT"]! = "") { $ IP = $ _GET ["INT"]; } остальное, если (Исеть ($ _GET ["точка"]) && $ _GET ["точка"!] = "") { $ Ф = ip2long ($ _GET ["точка"]); } еще { $ Ф = 0; } Uns_ip $ = ($ р> 0 $ ф: 0xffffffff + $ ф + 1) + 0; если (($ uns_ip & 0 × 80000000) == 0) { $ = 0xff000000 маски; } остальное, если (($ uns_ip и 0xC0000000) == -2147483648) { $ = 0xffff0000 маски; } остальное, если (($ uns_ip и 0xE0000000) == -1073741824) { $ = 0xffffff00 маски; } еще { $ Маски = ""; } $ Dot_ip = long2ip ($ uns_ip); $ Hex_ip = dec2string ($ uns_ip, 16); $ Hex_ip = "0x" панели ($ hex_ip, 8). $ Oct_ip = dec2string ($ uns_ip, 8); $ Oct_ip = "0" панели ($ oct_ip, 16). $ Bin_ip = dec2string ($ uns_ip, 2); $ Bin_ip = площадки ($ bin_ip, 32); > Преобразование результата | Dot обозначение | =$dot_ip?> |
|---|
| Десятичное число | =$ip?> |
|---|
| Unsigned десятичное число | =$uns_ip?> |
|---|
| Шестнадцатеричные числа | =$hex_ip?> |
|---|
| Двоичное число | =$bin_ip?> |
|---|
| Восьмеричное число | =$oct_ip?> |
|---|
| Природные маски | echo "$mask (".long2ip($mask).") " ?> |
|---|
} ?> | |