>  기사  >  백엔드 개발  >  PHP에서 사용자의 IP 주소를 얻는 방법

PHP에서 사용자의 IP 주소를 얻는 방법

(*-*)浩
(*-*)浩원래의
2019-09-20 11:04:0112291검색

IP 주소: 인터넷 프로토콜 주소(IP 주소)는 인터넷 프로토콜을 사용하여 통신하는 컴퓨터 네트워크에 연결된 모든 장치에 할당된 숫자 레이블입니다. IP 주소에는 호스트 또는 네트워크 인터페이스 식별과 위치 주소 지정이라는 두 가지 주요 기능이 있습니다.

PHP에서 사용자의 IP 주소를 얻는 방법

$_SERVER['REMOTE_ADDR']: 현재 페이지를 탐색하는 사용자 컴퓨터의 IP 주소

$_SERVER['HTTP_CLIENT_IP']: 클라이언트의 IP(권장 학습: PHP 프로그래밍 시작부터 숙련도 )

$_SERVER['HTTP_X_FORWARDED_FOR']: 현재 페이지를 탐색하는 사용자 컴퓨터의 게이트웨이

$_SERVER['HTTP_X_REAL_IP']: nginx 프록시 모드에서 클라이언트의 실제 IP를 가져옵니다

/**
 * 获取客户端IP地址
 */
function real_ip()
{
  $ip = $_SERVER['REMOTE_ADDR'];
  if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', 
  $_SERVER['HTTP_X_FORWARDED_FOR'], $matches)) {
    foreach ($matches[0] AS $xip) {
      if (!preg_match('#^(10|172\.16|192\.168)\.#', $xip)) {
        $ip = $xip;
        break;
      }
    }
  } elseif (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', 
  $_SERVER['HTTP_CLIENT_IP'])) {
    $ip = $_SERVER['HTTP_CLIENT_IP'];
  } elseif (isset($_SERVER['HTTP_CF_CONNECTING_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', 
  $_SERVER['HTTP_CF_CONNECTING_IP'])) {
    $ip = $_SERVER['HTTP_CF_CONNECTING_IP'];
  } elseif (isset($_SERVER['HTTP_X_REAL_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', 
  $_SERVER['HTTP_X_REAL_IP'])) {
    $ip = $_SERVER['HTTP_X_REAL_IP'];
  }
  return $ip;
}

위 내용은 PHP에서 사용자의 IP 주소를 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.