'IP 대역'에 해당되는 글 1건

728x90

접속 허용을 할 IP대역을 지정할 경우 간단하게 사용할 수 있는 방법이다.

내가 접속한 IP주소 확인은 http://www.findip.kr 에 접속하면 Public IP 주소를 알려준다.

그런데 findip.kr 사이트에서 받은 결과와 운영하는 서버에서 인식하는 IP주소가 다를 수 있다.

이때에는 운영하는 서버에서 인식하는 IP기준으로 필터링을 해야 한다.

 

<?php
$UserIP = $_SERVER['REMOTE_ADDR'];  // 접속한 사용자의 IP주소 불러오기
echo $UserIP."<br />";
echo $_SERVER['HTTP_USER_AGENT']; // 접속자의 사용자 브라우저 환경값 가져오기

$ip_extract = explode(".",$UserIP);  //.로 분리해서 배열로 저장
$UserIP_trim = $ip_extract[0].".".$ip_extract[1].".".$ip_extract[2];

$ipcheck_1 = "100.200.200"; // 접속 허용 IP 블럭

if($UserIP_trim == $ipcheck_1) {
   // 인증시키는 창으로 이동시킨다.
   $url = $PHP_SELF;
   $url = urlencode($url);
   echo ("<meta http-equiv='Refresh' content='0; URL=list.php'>");
   exit;
} else {
    echo ("<script>alert('허용된 사용자가 아닙니다');window.top.location.replace('index.php');</script>");
}

?>

 

다음과 같이 해도 된다.

<?php
if(strpos($UserIP, "100.200.200.") !== false) {  // 포함
    
} else {  // 미포함

}
?>

 

DB에 접속을 허용할 user 를 등록한 경우에만 허용하고자 한다면 아래와 같이 함수를 만들어서 사용하면 된다.

<?php
class LoginClass {
    function allowIPaddressChk(){
        global $db;
        $access_ip=$_SERVER['REMOTE_ADDR'];
        $sql ="select count(*) from allowHosts where ipaddr='".$access_ip."'";
        $result=mysql_query($sql);
        if($row=mysql_fetch_row($result)){
            if($row[0] == '1'){
                return 1;
            } else {
                return 0;
            }
        }
    }

} // End of Class

 

접속 허용 여부를 체크할 PHP 파일에 아래 코드를 추가한다.

require_once "dbconnect.php";
require_once "phpclass/LoginClass.php";

$access=new LoginClass();
if($access->allowIPaddressChk() == '0'){
    echo $_SERVER['REMOTE_ADDR'];
    exit;
}

 

'Web 프로그램 > PHP 응용 및 활용' 카테고리의 다른 글

PHP 일일 통계 테이블 구조 및 코드  (0) 2016.11.16
접속자 통계 구하기  (0) 2016.10.24
문자열 숫자 표기  (0) 2016.04.23
킴스큐 함수 활용  (0) 2016.04.19
[PHP] 날짜 함수 정리  (0) 2015.08.03
블로그 이미지

Link2Me

,