반응형
PHP에서 접속자의 IP를 찾는 함수 입니다.
IP주소를 얻는 가장 쉬운 방법은 $_SERVER['REMOTE_ADDR']
or $_SERVER['REMOTE_HOST']
사용입니다.
그러나, 때로는 접속자의 IP가 올바르지 않게 얻어질 수 있기에,
다른 변수를 사용해서 IP주소를 가져오도록 합니다.
아래의 2가지 방법은 결과는 동일합니다.
getenv() is used to get the value of an environment variable in PHP.
// Function to get the client IP address
function get_client_ip() {
$ipaddress = '';
if (getenv('HTTP_CLIENT_IP'))
$ipaddress = getenv('HTTP_CLIENT_IP');
else if(getenv('HTTP_X_FORWARDED_FOR'))
$ipaddress = getenv('HTTP_X_FORWARDED_FOR');
else if(getenv('HTTP_X_FORWARDED'))
$ipaddress = getenv('HTTP_X_FORWARDED');
else if(getenv('HTTP_FORWARDED_FOR'))
$ipaddress = getenv('HTTP_FORWARDED_FOR');
else if(getenv('HTTP_FORWARDED'))
$ipaddress = getenv('HTTP_FORWARDED');
else if(getenv('REMOTE_ADDR'))
$ipaddress = getenv('REMOTE_ADDR');
else
$ipaddress = 'UNKNOWN';
return $ipaddress;
}
$_SERVER is an array that contains server variables created by the web server.
// Function to get the client IP address
function get_client_ip() {
$ipaddress = '';
if (isset($_SERVER['HTTP_CLIENT_IP']))
$ipaddress = $_SERVER['HTTP_CLIENT_IP'];
else if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
$ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
else if(isset($_SERVER['HTTP_X_FORWARDED']))
$ipaddress = $_SERVER['HTTP_X_FORWARDED'];
else if(isset($_SERVER['HTTP_FORWARDED_FOR']))
$ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
else if(isset($_SERVER['HTTP_FORWARDED']))
$ipaddress = $_SERVER['HTTP_FORWARDED'];
else if(isset($_SERVER['REMOTE_ADDR']))
$ipaddress = $_SERVER['REMOTE_ADDR'];
else
$ipaddress = 'UNKNOWN';
return $ipaddress;
}
출처: https://stackoverflow.com/questions/15699101/get-the-client-ip-address-using-php
반응형
'WEB언어 > PHP' 카테고리의 다른 글
PHP의 empty (0) | 2018.03.09 |
---|---|
PHP의 Composer 한글 메뉴얼 + PHP개발자 글 (0) | 2018.01.05 |
[PHP]문자열 필터링 함수 eregi 등의 취약점 (0) | 2017.12.19 |
gmail 계정으로 이메일 보내기 + AWS에서 PHP를 이용한 SMTP를 통해 이메일 전송 (0) | 2017.12.16 |
PHP 객체지향 방식 (0) | 2017.11.30 |
[PHP] HTTP와 HTTPS에 따라 URL변경하기 (0) | 2017.10.26 |
[PHP] Notice: Undefined variable 초기값이 없을때 나는 오류 (0) | 2017.10.25 |
(따옴표) Single쿼텐션 없애기 / 엔터 없애기 / GET방식 & 와 + 전송하기 (0) | 2017.10.13 |
도움이 되셨다면 하트모양의 "♡ 공감"을 눌러주시면 큰 격려가 됩니다.
(로그인하지 않으셔도 가능)
(로그인하지 않으셔도 가능)