PHP

IP 체크하여 영문 혹은 한글 사이트로 분기 시키기

Jack Moon 2013. 8. 20. 11:31

미션: 접속자의 IP를 체크하여 영문 혹은 한글사이트로 분기시키고자 한다.

(확장: 특정국가 차단 혹은 다국어 사이트 운영)


1. 각 국가별 IP 대역 확보

http://geolite.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip


2. 사용할 테이터 혹은 필드 정리

다운받은 CSV파일의 경우 시작IP, 종료IP, 시작번호, 종료번호, 국가기호, 국가명으로 구성

한국만 필요하므로 KR만 빼 왔다. 2013. 08. 20 현재 668개


3. 테이블 생성 및 CSV import

CREATE TABLE `ip_to_country` (               
                 `start_ip` char(15) default NULL,          
                 `end_ip` char(15) default NULL,            
                 `start_num` int(10) unsigned default NULL, 
                 `end_num` int(10) unsigned default NULL,   
                 `country` char(2) default NULL             
               )


4. 분기 파일 생성

<?php

$conn = mysql_open('localhost');  // DB connect
    $userLong = ip2long($_SERVER['REMOTE_ADDR']);  // ip주소 숫자로 변환
 
    $sql = "select count(*) from ip_to_country where start_num <= ".$userLong." and end_num >= ".$userLong;
    $rs = mysql_query($sql) OR die(__FILE__." : Line ".__LINE__."<p>".mysql_error());
    if(mysql_result($rs, 0, 0) > 0) {  // 한국어 사이트 이동
        $fileName = "index_kr.html";
    }else {  // 영문사이트 이동
        $fileName = "index_en.html";
    }
mysql_close($conn);  //DB close

?>



'PHP' 카테고리의 다른 글

PHP 5.16 to PHP 5.3.29  (0) 2015.05.12
파일 다운로드 (서버로 다운로드가 아닌 PC로 다운로드)  (0) 2015.04.08
PHP 소스 암호화 php_screw  (0) 2012.10.08
fpdf  (0) 2012.10.08
CURL  (0) 2012.10.08