함수 dec2string ($ 십진수, $ 기지) { 글로벌 $ 오류; $ 문자열 = NULL; $베이스 = (INT) $ 기지; 경우 ($ 기지 <2 | | $ 기지> 36 | | $ 기지 == 10) { 에코 '베이스 범위 2-9 또는 11-36에 있어야합니다'; 출구; } $ 문자 집합 = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ '; $ 문자 집합 = substr ($ 문자 집합, 0, $ 기지); 만약 (! ereg ( '(^ [0-9] {1,16} $)'장식 (십진수 $))) { $ 오류 [ 'dec_input'] = '값은 양의 정수 여야합니다'; false를 반환; } 할 { $ 남은 = bcmod (십진수 $, $ 기지); $ 문자 = substr ($ 문자 집합, $ 나머지, 1); / / 배열에서 CHAR 얻을 $ 문자열 = "$ 문자 $ 문자열"; / / 앞에 출력 $ 소수점 = bcdiv (bcsub ($ 십진수, $ 나머지 부분), $ 기지); } 동안 ($ 십진수> 0); $ 문자열을 반환; } 함수 string2dec ($ 문자열, $ 기지) { 글로벌 $ 오류; $ 소수점 = 0; $베이스 = (INT) $ 기지; 경우 ($ 기지 <2 | | $ 기지> 36 | | $ 기지 == 10) { 에코 '베이스 범위 2-9 또는 11-36에 있어야합니다'; 출구; } $ 문자 집합 = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ '; $ 문자 집합 = substr ($ 문자 집합, 0, $ 기지); $ 문자열 = 트림 ($ 문자열); {(($ 문자열) 비어있는 경우) $ 오류 [] = '입력 문자열이 비어 있습니다'; false를 반환; } 할 { $ 문자 = substr ($ 문자열, 0, 1); / /가 선두 문자를 추출 $ 문자열 = substr ($ 문자열, 1); / / 드롭 최고의 캐릭터 $ POS는 = strpos ($ 문자 집합, $ 문자); / / $ 문자 집합에 오프셋을받을 경우 ($ POS === 거짓) { $ 오류 [] = "잘못된 문자 ($ 문자) 입력 문자열에서"; false를 반환; } $ 소수점 = bcadd (bcmul ($ 십진수, $ 기지), $ POS); } 동안 ($ 문자열 <> NULL); 진수 $를 반환; } 함수 패드 ($ str을 보여주고, $ NUM) { str_repeat합니다 ( "0", $ NUM - 나 strlen ($ str을)) 반환 $ str을 보여주고있다.; } / / 메인 경우 (isset ($ _GET는 [ "제출"])) { $ IP = 0; 경우 (isset ($ _GET [ "정수"]) && $ _GET [ "정수"]! = "") { $ IP = $ _GET [ "정수"]; } 다른 경우 (isset ($ _GET [ "점"]) && $ _GET [ "점"]! = "") { $ IP = ip2long ($ _GET [ "점"]); } 다른 { $ IP = 0; } $ uns_ip = ($ IP> 0 $ IP : 0xFFFFFFFF는 + $ IP + 1) + 0; IF ((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_ip?> |
|---|
| 진수 | =$ip?> |
|---|
| 서명되지 않은 십진수 번호 | =$uns_ip?> |
|---|
| 16 진수 | =$hex_ip?> |
|---|
| 바이너리 번호 | =$bin_ip?> |
|---|
| 진수 번호 | =$oct_ip?> |
|---|
| 자연 넷마 스크 | echo "$mask (".long2ip($mask).") " ?> |
|---|
} ?> | |