PHP를 사용하여 사용자의 IP 주소를 검색할 때 고려할 수 있는 여러 서버 변수가 있습니다. 완벽한 방법은 없지만 이 문서에서는 이러한 변수를 기반으로 가장 정확한 접근 방식을 탐색합니다.
배경
$_SERVER 배열에는 잠재적으로 IP 주소 정보를 제공하는 수많은 헤더가 포함되어 있습니다. . 그러나 이러한 헤더의 신뢰성과 정확성은 프록시 구성 및 네트워크 토폴로지에 따라 달라질 수 있습니다.
일반적으로 사용되는 방법
전통적으로 다음 순서를 사용하여 정보를 얻습니다. 사용자의 IP 주소:
최적화된 접근 방식
정확도와 성능을 향상시키기 위해 이 시퀀스는 다음과 같이 최적화되었습니다. 다음:
function get_ip_address() { $headers = ['HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR']; foreach ($headers as $header) { if (isset($_SERVER[$header]) && ($ip = trim($_SERVER[$header]))) { if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) { return $ip; } } } return null; }
주의
이 접근 방식은 대부분의 프록시 뒤에 있는 사용자의 IP 주소를 검색하지만 다음 사항에 유의하는 것이 중요합니다.
추가 참고사항
위 내용은 PHP에서 가장 정확한 사용자 IP 주소를 어떻게 얻을 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!