Programming/Php
PHP 클라이언트 IP 알아내기
GeonWoo Kim
2019. 12. 10. 09:58
PHP를 사용하는 서버에 접속자 IP를 알아내는 방법은 $_SERVER에 있는 IP 정보를 활용하는 것이다. 문제는 서버에 L4나 방화벽같은 장비가 붙어있을 경우 $_SERVER["HTTP_CLIENT_IP"]로 접속자의 IP를 알아낼 수 없을 경우가 있다. 이런 경우를 대비해서 PHP $_SERVER 변수의 다른 IP 정보들을 활용하면 접속자 IP 정보를 알아낼 수 있다.
function get_client_ip_server() {
$ipaddress = '';
if ($_SERVER['HTTP_CLIENT_IP']){
$ipaddress = $_SERVER['HTTP_CLIENT_IP'];
}
else if($_SERVER['HTTP_X_FORWARDED_FOR']) {
$ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
else if($_SERVER['HTTP_X_FORWARDED']) {
$ipaddress = $_SERVER['HTTP_X_FORWARDED'];
}
else if($_SERVER['HTTP_FORWARDED_FOR']) {
$ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
}
else if($_SERVER['HTTP_FORWARDED']) {
$ipaddress = $_SERVER['HTTP_FORWARDED'];
}
else if($_SERVER['REMOTE_ADDR']) {
$ipaddress = $_SERVER['REMOTE_ADDR'];
}
else {
$ipaddress = 'UNKNOWN';
}
return $ipaddress;
}