PHP 获取ip地址代码汇总

5年以前  |  阅读数:850 次  |  编程语言:PHP 

代码一:


    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;
    }

代码二:


    <?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;
    ?>

方法三:


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

方法四:


    <?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
    ?>

方法五:


    <?php
    function get_real_ip()
    {
    $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 get_real_ip();
    ?>

方法六:


    <?php
    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 $onlineip;
    ?>
 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例