且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

PHP中获取IP的方法

更新时间:2022-09-20 09:38:41

PHP获取客户端 真实IP地址多种方法  

PHP中获取IP的方法
<?php
//经过复杂的判断与算是的获取IP地址函数
 function getIP() {
        if (getenv(HTTP_CLIENT_IP)) {
                        $ip = getenv(HTTP_CLIENT_IP); 
                }
                elseif (getenv(HTTP_X_FORWARDED_FOR)) {
                        $ip = getenv(HTTP_X_FORWARDED_FOR);
                }
                elseif (getenv(HTTP_X_FORWARDED)) { 
                        $ip = getenv(HTTP_X_FORWARDED);
                }
                elseif (getenv(HTTP_FORWARDED_FOR)) {
                        $ip = getenv(HTTP_FORWARDED_FOR);
                }
                elseif (getenv(HTTP_FORWARDED)) {
                        $ip = getenv(HTTP_FORWARDED);
                }
                else {
                        $ip = $_SERVER[REMOTE_ADDR];
                }
                return $ip;
 }
 echo '<br>1---'.getIP();
 //最简单获取ip地址代码一句实例
 
 $reIP=$_SERVER["REMOTE_ADDR"];
 echo '<br>2---'.$reIP;
 
 //
 
 //php教程获取ip的算法
  if(getenv(HTTP_CLIENT_IP)) { 
  $onlineip = getenv(HTTP_CLIENT_IP);
  } elseif(getenv(HTTP_X_FORWARDED_FOR)) { 
  $onlineip = getenv(HTTP_X_FORWARDED_FOR);
  } elseif(getenv(REMOTE_ADDR)) { 
  $onlineip = getenv(REMOTE_ADDR);
  } else { 
  $onlineip = $HTTP_SERVER_VARS[REMOTE_ADDR];
  }
  echo '<br>3---'.$onlineip;
  //可以分出内网与外网站ip地址获取程序
 
 function getip_out(){
 $ip=false;
 if(!empty($_SERVER["HTTP_CLIENT_IP"])){
  $ip = $_SERVER["HTTP_CLIENT_IP"];
 }
 if (!empty($_SERVER[HTTP_X_FORWARDED_FOR])) {
  $ips教程 = explode (", ", $_SERVER[HTTP_X_FORWARDED_FOR]);
  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[REMOTE_ADDR]);
 }
 
 echo '<br>4---'.getip_out();
 
 //php获取ip的算法,用了?号表达式来处理 
 
  $user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
  $user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"]; 
  echo '<br>5---'.$user_IP;
?>
PHP中获取IP的方法

 本文转自cococo点点博客园博客,原文链接:http://www.cnblogs.com/coder2012/archive/2013/03/24/2978504.html,如需转载请自行联系原作者