PHP获取用户访问IP地址的5种方法

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

本文实例为大家分享了5种PHP获取用户访问IP地址的方法,供大家参考,具体内容如下


    <?php                                                                 //方法1:
    $ip = $_SERVER["REMOTE_ADDR"];
    echo $ip;

    //方法2:
    $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;

    //方法3:
    function getRealIp()
    {
      $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 getRealIp();

    //方法4:
    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 ;

    //方法5:
    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程序设计有所帮助。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
将二进制数据转为16进制以便显示
获取IMSI
获取IMEI
Java生成UUID
PHP自定义函数获取搜索引擎来源关键字的方法
让你成为最历害的git提交人
在Zeus Web Server中安装PHP语言支持
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
php+ajax+json 详解及实例代码
Yii2汉字转拼音类的实例代码
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例
php数组合并array_merge()函数使用注意事项
PHP设计模式之工厂模式与单例模式
PHP实现简单爬虫的方法
php实现数组中索引关联数据转换成json对象的方法
wget使用技巧