>백엔드 개발 >PHP 튜토리얼 >PHP에서 클라이언트 IP를 얻는 방법에 대한 심층 분석

PHP에서 클라이언트 IP를 얻는 방법에 대한 심층 분석

WBOY
WBOY원래의
2016-07-25 08:57:151122검색
  1. function getip() {
  2. $unknown = 'unknown';
  3. if ( isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR'] && strcasecmp($_SERVER['HTTP_X_FORWARDED_FOR'], $unknown) ) {
  4. $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; } elseif
  5. ( isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], $unknown) ) {
  6. $ip = $_SERVER['REMOTE_ADDR'];
  7. }
  8. /* 处理多层代理的情况 或者使用正则方式:$ip = preg_match("/[/d/.]{7,15}/", $ip, $matches) ? $matches[0] : $unknown; */
  9. if (false !== strpos($ip, ','))
  10. $ip = reset(explode(',', $ip)); return $ip;
  11. }
复制代码

注意: 使用函数getenv(’HTTP_X_FORWARDED_FOR’)或getenv(’REMOTE_ADDR’) 也可以如上代码一样取得同样的效果。 不过,特别要留意的是,getenv()不支持在IIS的isapi方式下运行的PHP。



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