[실제 아이피 알아내기 - 특정 아이피 적용 소스 코드 (아이피주소 확인)]
아이피주소 확인을 하는 소스 코드는 꽤 있지만, 그 중에는 가짜 아이피를 가져오는 경우가 있습니다.
이것은 여러 가지 경로를 거치는 네트워크 특성 상 종종 있는 일이며 프록시 서버를 거치는 경우에는 프록시 서버의 아이피를 넘겨 받게 됩니다. 예를 들어서 브라우저 설정이 외국 프록시 서버로 되어 있을 경우 엉뚱하게 네덜란드 아이피를 받는 것입니다.
이럴 때는 실제 아이피주소 확인으로 검수하는 과정이 있어야만 실제 아이피를 알아내기가 가능합니다.
또한 웹사이트를 제작하다보면 항상 모든 페이지를 하나의 코드만으로 운영할 수 없음을 알게 됩니다.
예를 들어 운영자만 들어갈 수 있는 페이지를 만드는 것은 로그를 확인하면 되지만, 내 집에서만 접속할 수 있도록 할 경우에는 반드시 특정 아이피를 알아내는 아이피주소 확인을 해야만 합니다. 이럴 때 아래의 실제 아이피 알아내기 코스 소스를 통해 확인할 수 있습니다.
실제 아이피 알아내기 소스 코드
<프록시 서버를 제외하는 아이피 확인 소스 코드>
<?php
if (!empty($_SERVER["HTTP_CLIENT_IP"])) // empty는 비어 있는지 값이 있는지 알아보는 것.
{
//공용 IP 확인
$ip = $_SERVER["HTTP_CLIENT_IP"]; // 접속자의 아이피를 $ip라는 곳에 저장.
}
elseif (!empty($_SERVER["HTTP_X_FORWARDED_FOR"])) // 접속자의 아이피를 식별하기 위한 것
{
// 프록시 사용하는지 확인
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
}
else
{
$ip = $_SERVER["REMOTE_ADDR"]; // 일반 IP도, 프록시도 아닐 경우에 받은 아이피를 저장
}
//진짜 IP 정보
echo $ip; // 아이피를 화면에 표시하는 코드. 필요없면 삭제.
?>
일반적으로는 $_SERVER["REMOTE_ADDR"]를 통해서 IP 알아내기를 하지만, 실제 아이피를 포함하지 않는 경우가 종종 있습니다. 그래서 $_SERVER["HTTP_CLIENT_IP"]와 $_SERVER["HTTP_X_FORWARDED_FOR"]를 통해서 검수를 미리하는 것입니다. 일반적인 아이피주소 확인의 방법보다 조금 더 정밀합니다.
특정 아이피면 적용시키는 소스 코드
그렇다면 실제 아이피 알아내기 방법을 적용한 후, 원하는 기능을 특정 아이피면 적용시키는 방법을 추가해 봅시다.
<실제 아이피주소 확인 후, 특정 아이피에만 적용하는 소스 코드>
<?php
$ip = $_SERVER["REMOTE_ADDR"] // 변수 ip에 현재 알아낸 특정 아이피 저장
if ($ip=='원하는 아이피 쓰기') { // 알아낸 아이피주소와 원하는 아이피가 같을 경우 실행
include('삽입되길 원하는 문서의 경로주소'); // 원하는 아이피라면 기능을 삽입
}
?>
이렇게 하면 자신이 원하는 아이피일 경우에만 홈페이지에 특정 내용이 나타나게 할 수가 있습니다. 거꾸로 사용하자면, 내가 싫어하는 아이피에서 접속한 사용자가 내 사이트에 접속하지 못하도록 만들 수도 있습니다. include 부분 대신 자동 이동 코드를 넣으면 되는 것입니다.
프록시 서버로 들어오는 것에 속수무책이라면 불가능한 것이지만 실제 아이피 알아내기로 아이피주소 확인을 거친 코드이므로 가능한 것입니다.
알아두어야 할 아이피주소 확인의 문제점
그러나 주의해야 할 것이 있습니다.
이런 특정 아이피 적용하기 방법에는 보안의 문제가 있습니다. 제3자가 아이피주소 확인 과정 중에 정보를 볼 수 있기 때문입니다. 그러므로 매우 중요한 문서를 처리할 경우에는 사용하지 말고, 간단히 홈페이지에서 실제 아이피 알아내기를 할 때나 특정 아이피주소 확인 후 적용될 기능이 따로 있을 경우에만 사용하는 것이 좋겠습니다.