>백엔드 개발 >PHP 튜토리얼 >PHP에서 IP 주소를 얻는 6가지 방법

PHP에서 IP 주소를 얻는 6가지 방법

墨辰丷
墨辰丷원래의
2018-06-09 09:41:4666971검색

이 글은 주로 PHP에서 IP 주소를 얻는 6가지 방법을 소개합니다. 관심 있는 친구들이 참고하면 도움이 될 것입니다.

추천 매뉴얼: php 완전 자습 매뉴얼

코드 1:

function getip() {
  static $ip = '';
  $ip = $_SERVER['REMOTE_ADDR'];
  if(isset($_SERVER['HTTP_CDN_SRC_IP'])) {
    $ip = $_SERVER['HTTP_CDN_SRC_IP'];
  } 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_X_FORWARDED_FOR']) AND 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;
      }
    }
  }
  return $ip;
}
추천 관련 글:
1.php는 어떻게 사용자의 IP 주소를 얻나요
2.PHP에서 클라이언트의 IP 주소를 얻는 방법은 무엇입니까?
관련 동영상 추천:
1.Dugu Jiujian (4)_PHP 동영상 튜토리얼

코드 2:

<?php
error_reporting (E_ERROR | E_WARNING | E_PARSE);
if($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]){
$ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
}
elseif($HTTP_SERVER_VARS["HTTP_CLIENT_IP"]){
$ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
}
elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"]){
$ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
}
elseif (getenv("HTTP_X_FORWARDED_FOR")){
$ip = getenv("HTTP_X_FORWARDED_FOR");
}
elseif (getenv("HTTP_CLIENT_IP")){
$ip = getenv("HTTP_CLIENT_IP");
}
elseif (getenv("REMOTE_ADDR")){
$ip = getenv("REMOTE_ADDR");
}
else{
$ip = "Unknown";
}
echo $ip;
?>

방법 3:

<?php
$iipp = $_SERVER["REMOTE_ADDR"];
echo $iipp ;
?>

방법 4:

<?php
$user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
$user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];
echo $user_IP
?>

방법 5:

<?php
function get_real_ip()
{
$ip=false;
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
 $ip = $_SERVER["HTTP_CLIENT_IP"];
}
if (!empty($_SERVER[&#39;HTTP_X_FORWARDED_FOR&#39;])){
 $ips = explode (", ", $_SERVER[&#39;HTTP_X_FORWARDED_FOR&#39;]);
 if($ip){
  array_unshift($ips, $ip); $ip = FALSE;
 }
 for($i = 0; $i < count($ips); $i++){
  if (!eregi ("^(10|172\.16|192\.168)\.", $ips[$i])){
  $ip = $ips[$i];
  break;
  }
 }
}
return($ip ? $ip : $_SERVER[&#39;REMOTE_ADDR&#39;]);
}
echo get_real_ip();
?>

방법 6 :

<?php
if(getenv(&#39;HTTP_CLIENT_IP&#39;)){
$onlineip = getenv(&#39;HTTP_CLIENT_IP&#39;);
}
elseif(getenv(&#39;HTTP_X_FORWARDED_FOR&#39;)){
$onlineip = getenv(&#39;HTTP_X_FORWARDED_FOR&#39;);
}
elseif(getenv(&#39;REMOTE_ADDR&#39;)){
$onlineip = getenv(&#39;REMOTE_ADDR&#39;);
}
else{
$onlineip = $HTTP_SERVER_VARS[&#39;REMOTE_ADDR&#39;];
}
echo $onlineip;
?>

Summary: 위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.

관련 권장 사항:

PHP 문자열 변환 기술

PHP는 지정된 접미사 파일에 대한 일괄 업로드 기능을 구현합니다.

php 함수는 디지털 금액을 중국어 대문자 금액으로 변환합니다

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

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