웹마스터 팁
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 라고 내장함수가 있잖아!!;
(삽질했네;;;)
제목 | 글쓴이 | 날짜 |
---|---|---|
재미있는놀이 [ 숫자맞추기] [3] | NzeoZen | 2003.08.16 |
[수정]롤오버 메뉴에 하위 부메뉴 레이어..(아웃시 하위메뉴사라짐) [24] | 미니 | 2003.08.18 |
경우에 따라 공지가 새창에서도 보여야 하고, 일반 페이지에서도 보여야 할때 | 조은하루 | 2003.08.22 |
마우스 움직임에 따라 속도도, 방향도 자유자재 스크롤 소스 [1] | RedEye(kaist) | 2003.08.24 |
메인 접속하면 할아버지 나오는... [6] | 공유 | 2003.08.28 |
변수의 실제 바이트 수를 리턴하는 팁 [2] | 한승진 | 2003.08.29 |
변수에서 숫자만 리턴합니다. | 한승진 | 2003.08.29 |
전화번호 유효성 검사(핸폰,집전화 몽땅) [4] | 한승진 | 2003.08.29 |
주어진 값이 한글,영어,숫자인지 체크 [2] | 한승진 | 2003.08.29 |
frame으로 홈페이지 구성시 한쪽 페이지는 유동성있는 파일 대입법(?) | monozzang | 2003.09.02 |
홈에 TT WEB FTP 달기 [12] | PHASE | 2003.09.03 |
진수란? [4] | 타키 | 2003.09.04 |
변수란? [1] | 타키 | 2003.09.04 |
### MSN/Windows Messenger용 친구 추가스크립트 ### [10] | 웹스 | 2003.09.05 |
플레쉬 메뉴를 표방한..=ㅁ= 자바스크립트의 수작 버튼 밑으로 스크롤 되는 아이콘입니다. [47] | beMax | 2003.09.14 |
[초간단 자바스크립트!] 창 이동시 경고 메세지 띄우기...!;;; [2] | ∑Ztxy | 2003.09.26 |
[초간단 자바스크립트!] 뒤로,앞으로,중지,홈으로 버튼 만들기... [7] | ∑Ztxy | 2003.09.26 |
[초간단 자바스크립트!] 이미지에 스포트라이트 효과주기... [1] | ∑Ztxy | 2003.09.26 |
[초간단 자바스크립트(강의)!] 버튼을 눌러서 배경색 바꾸기 [5] | ∑Ztxy | 2003.09.26 |
[초간단 자바스크립트(강의)!] 풀스크린 창 띄우기... [3] | ∑Ztxy | 2003.09.27 |