PHP에서 사용자 IP 주소 얻기
-
$_SERVER['REMOTE_ADDR']
를 사용하여 PHP에서 사용자의 IP 주소 찾기 -
$_SERVER['REMOTE_ADDR']
,$_SERVER['HTTP_CLIENT_IP']
및$_SERVER['HTTP_X_FORWARDED_FOR']
를 사용하여 사용자의 IP 주소를 찾습니다 -
삼항 연산자 및
isset()
함수를 사용하여 사용자의 IP 주소 찾기
유일한 배열 요소로REMOTE_ADDR
이있는$_SERVER
수퍼 글로벌 변수를 사용하여 PHP의 서버에서 사용자의 IP 주소에 액세스하는 방법을 소개합니다. $_SERVER['REMOTE_ADDR']
로 사용됩니다.
사용자의 IP 주소가 공유 인터넷, 프록시 또는 실제 IP 주소인지 확인하기 위해 조건식을 사용하여 PHP에서 사용자의 IP 주소에 액세스하는 또 다른 방법을 보여줍니다. 이 메소드는HTTP_CLIENT_IP
,HTTP_X_FORWARDED_FOR
및REMOTE_ADDR
과 같은 배열 요소를 사용합니다.
삼항 연산자와isset()
함수를 사용하여 PHP에서 사용자의 IP 주소를 가져 오는 간단한 방법을 보여 드리겠습니다. 이 메서드는 또한$_SERVER
수퍼 전역 변수에서HTTP_CLIENT_IP
,HTTP_X_FORWARDED_FOR
및REMOTE_ADDR
과 같은 배열 요소를 사용합니다.
$_SERVER['REMOTE_ADDR']
를 사용하여 PHP에서 사용자의 IP 주소 찾기
$_SERVER['REMOTE_ADDR']
표현식을 사용하여 사용자가 현재 페이지에 액세스하는 IP 주소를 찾을 수 있습니다. $_SERVER
는 PHP의 수퍼 글로벌 변수이며 다양한 배열 요소를 인수로 사용합니다. 클라이언트의 실제 IP 주소에 액세스하기 위해$_SERVER
변수의 배열 요소로REMOTE_ADDR
을 사용합니다. $_SERVER['REMOTE_ADDR']
가 모든 경우에 항상 클라이언트의 올바른 IP 주소를 제공하는 것은 아닙니다. 다른 경우에 대해서는 아래에서 설명하겠습니다. 위의 표현식이 연결의 실제 IP를 반환하도록 서버 API (SAPI)가 잘 구성되어 있는지 확인합니다.
아래 예에서는localhost
가 서버로 사용됩니다. 따라서 루프백 IP 주소를 반환합니다. 루프백 주소에 대한 자세한 내용은 여기를 참조하십시오. 다음 PHP 스크립트의 URL이http://localhost/index.php
라고 가정합니다. 로컬 머신의 IP 주소를::1
로 출력합니다. ::1
은localhost
의 IPv6 표현입니다.
예를 들어,$_SERVER['REMOTE_ADDR']
를 변수ip_addr
에 할당합니다. 그런 다음echo
를 사용하여 변수를 인쇄합니다.
예제 코드 :
# php 7.x
<?php
$ip_add = $_SERVER['REMOTE_ADDR'];
echo "The user's IP address is - ".$ip_add;
?>
출력:
The user's IP address is - ::1
$_SERVER['REMOTE_ADDR']
,$_SERVER['HTTP_CLIENT_IP']
및$_SERVER['HTTP_X_FORWARDED_FOR']
를 사용하여 사용자의 IP 주소를 찾습니다
$_SERVER['REMOTE_ADDR']
,$_SERVER['HTTP_CLIENT_IP']
및$_SERVER['HTTP_X_FORWARDED_FOR']
와 같은 슈퍼 글로벌 변수$_SERVER
의 배열 요소를 사용하여 다음의 IP 주소를 찾을 수 있습니다. PHP의 사용자. 사용자의 실제 IP 주소를 찾으려면$_SERVER['REMOTE_ADDR']
를 사용하십시오. 사용자가 공유 인터넷에서 페이지에 액세스 할 때 IP 주소를 찾으려면$_SERVER['HTTP_CLIENT_IP']
를 사용합니다. 사용자가 프록시를 사용하여 웹 페이지에 액세스 할 때$_SERVER['HTTP_X_FORWARDED_FOR']
를 사용하여 IP 주소를 찾습니다. HTTP_X_FORWARDED_FOR
및HTTP_CLIENT_IP
와 같은 헤더는 누구나 설정할 수 있으므로 스푸핑 될 수 있습니다. 때로는 클라이언트의 실제 IP 주소를 나타내지 않을 수 있습니다.
예를 들어,empty()
함수를 사용하여$_SERVER['HTTP_CLIENT_IP']
에 내용이 포함되어 있는지 확인합니다. 포함 된 경우$ip
변수에 vale을 할당하고 i를 인쇄합니다.
다시$_SERVER['HTTP_X_FORWARDED_FOR']
에 대한 확인을 수행하고 값을 할당하고 존재하는 경우 인쇄합니다. $_SERVER['REMOTE_ADDR']
에서 유사한 작업을 수행합니다.
아래 예: $_SERVER['REMOTE_ADDR']
는 사용자가 프록시 또는 공유 인터넷 연결을 사용하지 않으므로 IP 주소를 반환합니다. PHP Manual을 확인하십시오.server.php)에서 $_SERVER
어레이에 대해 자세히 알아보십시오.
예제 코드 :
#php 7.x
<?php if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
echo $ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
echo $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
echo $ip = $_SERVER['REMOTE_ADDR'];
}
?>
출력:
::1
삼항 연산자 및isset()
함수를 사용하여 사용자의 IP 주소 찾기
삼항 연산자를 사용하여 PHP에서 사용자의 IP 주소를 찾는 약식 방법을 사용할 수 있습니다. 이 메소드에서isset()
메소드는 배열에 지정된 요소 또는 헤더 파일이 포함되어 있는지 확인합니다.
예를 들어,isset()
함수를 사용하여 배열에HTTP_CLIENT_IP
가 포함되어 있는지 확인합니다. 조건이 참이면HTTP_CLIENT_IP
가 설정됩니다. 그런 다음 조건이 실패하면isset()
함수를 사용하여 배열에HTTP_X_FORWARDED_FOR
가 포함되어 있는지 확인합니다. 마찬가지로 조건이 참이면HTTP_X_FORWARDED_FOR
이 설정되고 조건이 실패하면REMOTE_ADDR
이 설정됩니다.
아래 예에서 클라이언트는 프록시 또는 공유 인터넷을 사용하지 않습니다. 따라서 $_SERVER['REMOTE_ADDR']
이 실행됩니다. 3차 운영자에 대해 알아보려면 MSDN 웹 문서)를 확인하십시오.
예제 코드 :
#php 7.x
<?php
$ip = isset($_SERVER['HTTP_CLIENT_IP']) ? $_SERVER['HTTP_CLIENT_IP'] : isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];
echo "The user IP Address is - ". $ip;
?>
출력:
The user IP Address is - ::1
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn