为了账号安全,请及时绑定邮箱和手机立即绑定

如何从访客获得真实IP?

如何从访客获得真实IP?

PHP
倚天杖 2019-11-07 12:48:56
我正在使用以下PHP代码获取访问者的IP地址:<?php echo $_SERVER['REMOTE_ADDR']; ?>但是,当访客使用Proxy时,我无法从访客那里获得真实的IP地址。在这种情况下,是否可以获取访客的IP地址?
查看完整描述

3 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

这是我见过的最常见的技术:


function getUserIP() {

    if( array_key_exists('HTTP_X_FORWARDED_FOR', $_SERVER) && !empty($_SERVER['HTTP_X_FORWARDED_FOR']) ) {

        if (strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ',')>0) {

            $addr = explode(",",$_SERVER['HTTP_X_FORWARDED_FOR']);

            return trim($addr[0]);

        } else {

            return $_SERVER['HTTP_X_FORWARDED_FOR'];

        }

    }

    else {

        return $_SERVER['REMOTE_ADDR'];

    }

}

请注意,这并不保证您将始终获得正确的用户IP,因为有很多隐藏它的方法。


查看完整回答
反对 回复 2019-11-07
?
浮云间

TA贡献1829条经验 获得超4个赞

这是我的方法:


 function getRealUserIp(){

    switch(true){

      case (!empty($_SERVER['HTTP_X_REAL_IP'])) : return $_SERVER['HTTP_X_REAL_IP'];

      case (!empty($_SERVER['HTTP_CLIENT_IP'])) : return $_SERVER['HTTP_CLIENT_IP'];

      case (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) : return $_SERVER['HTTP_X_FORWARDED_FOR'];

      default : return $_SERVER['REMOTE_ADDR'];

    }

 }

如何使用:


$ip = getRealUserIp();


查看完整回答
反对 回复 2019-11-07
  • 3 回答
  • 0 关注
  • 604 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信