웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
IP to 정수변환(;)
2004.10.21 20:20
ip주소를 정수로 변환해서 DB에 저장하면 어떨까하고 만들어본 함수...
ip2int : ip를 정수로 변환
int2ip : ip2int의 결과로 나온수를 ip로 저장...
만일 IP가 255.255.255.255면 DB에 저장하려면,
char(15)의 칼럼이 필요합니다.
만일 정수로 변환하면 4바이트인 int타입의 칼럼에 저장할수가;;
변환할때는 귀찮아서 비트연산으로 쉬프트~ 쉬프트~
참고로 php는 unsigned가 지원되지 않아서(-_-;)
128.???.???.??? 이상의 ip는 음수로 값이 나옵니다
(ex : 255.001.001.001, 128.111.111.111)
(다시 ip로 변환에는 문제 없습니다.)
function ip2int($ip){
sscanf($ip, "%d.%d.%d.%d", $a, $b, $c, $d);
$int = 0;
$int += ($a << 24);
$int += ($b << 16);
$int += ($c << 8);
$int += $d;
return $int;
}
function int2ip($int){
$ip = '';
$temp .= ($int >> 24);
if(($int >> 24) < 0) $temp += 256;
$ip .= $temp.'.';
$ip .= (($int & (0x00FF0000)) >> 16);
$ip .= '.';
$ip .= (($int & (0x0000FF00)) >> 8);
$ip .= '.';
$ip .= ($int & (0x000000FF));
return $ip;
}
ip2int : ip를 정수로 변환
int2ip : ip2int의 결과로 나온수를 ip로 저장...
만일 IP가 255.255.255.255면 DB에 저장하려면,
char(15)의 칼럼이 필요합니다.
만일 정수로 변환하면 4바이트인 int타입의 칼럼에 저장할수가;;
변환할때는 귀찮아서 비트연산으로 쉬프트~ 쉬프트~
참고로 php는 unsigned가 지원되지 않아서(-_-;)
128.???.???.??? 이상의 ip는 음수로 값이 나옵니다
(ex : 255.001.001.001, 128.111.111.111)
(다시 ip로 변환에는 문제 없습니다.)
function ip2int($ip){
sscanf($ip, "%d.%d.%d.%d", $a, $b, $c, $d);
$int = 0;
$int += ($a << 24);
$int += ($b << 16);
$int += ($c << 8);
$int += $d;
return $int;
}
function int2ip($int){
$ip = '';
$temp .= ($int >> 24);
if(($int >> 24) < 0) $temp += 256;
$ip .= $temp.'.';
$ip .= (($int & (0x00FF0000)) >> 16);
$ip .= '.';
$ip .= (($int & (0x0000FF00)) >> 8);
$ip .= '.';
$ip .= ($int & (0x000000FF));
return $ip;
}
댓글 4
-
dohoons
2004.10.21 23:13
변환하는 작업이 좀더 많은 연산을 하게 해서 악영향은 미치진 않을지.. -
양영직
2004.10.25 03:13
이 함수의 입력값과 결과가 일대일대응 하지않을수도 있지 않나요? -
플로렐라
2004.10.25 18:06
현재의 IPv4는 32비트이기 때문에,
32비트인 정수로 변환에는 아무런 문제가 없습니다. -
플로렐라
2004.11.21 14:21
ip2long, long2ip 라고 내장함수가 있잖아!!;
(삽질했네;;;)
제목 | 글쓴이 | 날짜 |
---|---|---|
개판 오분전 라인 그래프 [4] | 미친개 | 2004.12.01 |
실명 진위여부 확인 [10] | piasol | 2004.12.01 |
나만의 미니홈 만들기 ㅡ write.php 파일과 write_ok [5] | 예뜨락 | 2004.11.30 |
나만의 미니홈 만들기 ㅡ view.php 파일과 제목링크 [9] | 예뜨락 | 2004.11.27 |
나만의 미니홈 만들기 ㅡ list.php , 디비 테이블 생성 [6] | 예뜨락 | 2004.11.26 |
나만의 미니홈 만들기 ㅡ 게시판 list.php 파일의 모양새 [6] | 예뜨락 | 2004.11.23 |
나만의 미니홈 만들기 ㅡ 게시판의 디자인 | 예뜨락 | 2004.11.22 |
나만의 미니홈 만들기 ㅡ 미니홈 생성 페이지 [3] | 예뜨락 | 2004.11.20 |
나만의 미니홈 만들기 ㅡ 기초적인 관리 페이지 [3] | 예뜨락 | 2004.11.20 |
나만의 미니홈 만들기 ㅡ 메인 기초 설계3 .레이아웃 [2] | 예뜨락 | 2004.11.19 |
나만의 미니홈 만들기 ㅡ 메인 기초 설계2 .레이아웃 | 예뜨락 | 2004.11.18 |
나만의 미니홈 만들기 ㅡ 글쓰기에 앞서... [1] | 예뜨락 | 2004.11.17 |
[타키의 초보강좌]PHP 기초 강좌 제 2탄[mysql로 들어가보자.] [2] | 타키 | 2004.10.24 |
소수[솟수] 쉽게 구하기[에라토스테네스의 해 알고리즘사용] , 경우의 수 구하기 [5] | 타키 | 2004.10.23 |
[타키의 초보강좌]PHP 기초 강좌 제 1탄[패스워드 인증] [8] | 타키 | 2004.10.23 |
www자동 붙히기 [8] | 미오유 | 2004.10.22 |
IP to 정수변환(;) [4] | 플로렐라 | 2004.10.21 |
한글자르는 문제 PHP차원에서 해결된 건가? [5] | 겜방 | 2004.10.20 |
MySQL의 패턴 매칭 맛보기 [2] | 손상모 | 2004.10.19 |
그래프 만들어주는 소스 [10] | 미친개 | 2004.10.15 |