php获取ip不准确怎么办

php获取ip不准确可能是用户使用了代理,因此“$_SERVER[‘REMOTE_ADDR’]”并不能感知用户真实IP,其解决办法就是通过定义一个“X-Forwarded-For”的实体头来获取真实ip。

php获取ip不准确怎么办

本文操作环境:Windows7系统、PHP7.1、Dell G3电脑。

php 获取的ip不真实?

各位,突然想到一个东西,我们这边不是一般$_SERVER[‘REMOTE_ADDR’];获取服务器内网IP(很可能就是服务器的代理IP)。那个代码是没有问题,然后我们使用了反向代理(nginx等),用户也可能使用代理,因此单纯的$_SERVER[‘REMOTE_ADDR’]并不能感知用户真实IP。

但是有个参数能透过代理IP取到真实用户的地址。对HTTp协议进行扩展。定义了一个叫做X-Forwarded-For的实体头。

立即学习“PHP免费学习笔记(深入)”;

因为我们考虑这个,主要是做广告的星友们,毕竟别人可以代理,刷量呢。

 【推荐:PHP视频教程】

代码如下:

//获取用户IP地址    public function getIp()    {        if(!empty($_SERVER["HTTP_CLIENT_IP"]))        {            $cip = $_SERVER["HTTP_CLIENT_IP"];        }        else if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))        {            $cip = $_SERVER["HTTP_X_FORWARDED_FOR"];        }        else if(!empty($_SERVER["REMOTE_ADDR"]))        {            $cip = $_SERVER["REMOTE_ADDR"];        }        else        {            $cip = '';        }        preg_match("/[d.]{7,15}/", $cip, $cips);        $cip = isset($cips[0]) ? $cips[0] : 'unknown';        unset($cips);        return $cip;    }

登录后复制

以上就是php获取ip不准确怎么办的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2519912.html

(0)
上一篇 2025年3月5日 16:33:09
下一篇 2025年3月1日 04:12:54

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • php 怎么去掉字符串最后一个逗号

    php去掉字符串最后一个逗号的方法:1、创建一个PHP示例文件;2、定义一个带有逗号的字符串;3、通过“rtrim($str, ‘,’);”方法去掉字符串最后一个逗号即可。rtrim()函数用于移除字符串右侧的空白字…

    2025年3月5日
    200
  • php 怎么强制打印错误

    php强制打印错误的设置方法:首先找到并打开“php.ini”配置文件;然后设置显示错误信息;最后通过“error_reporting(-1);”打印出所有的错误信息即可。 本文操作环境:Windows7系统、PHP7.1、Dell G3电…

    2025年3月5日
    200
  • php中string方法有哪些

    string方法有:移除字符串左侧的空白字符或其他字符的ltrim()、返回字符串所用字符信息的count_chars()、输出一个或多个字符串的echo()、将字符串打散为数组的explode()、把十六进制值转为ASCII字符的hex2…

    2025年3月5日
    200
  • php如何将xml转为array数组

    方法:首先用simplexml_load_string()将XML字符串转换为SimpleXMLElement对象;然后用json_encode()将该对象转换为JSON数据;最后用json_decode()将JSON数据转换为数组即可。 …

    2025年3月5日
    200
  • php如何实现阻塞

    php实现阻塞的方法:首先读写方式打开或者创建文件【lock.txt】文件;然后给【lock.txt】文件上【独占锁】;最后处理完数据后,要【释放锁】以及fclose关闭打开的文件。 本教程操作环境:windows7系统、PHP5.6版,D…

    2025年3月5日
    200
  • php验证码显示不全是什么原因

    php验证码显示不全的原因:1、php没有安装gd2模块;2、很可能是使用了像editpuls或者【notepad++】这样的文本编辑器编辑的;3、使用【ob_clean()】了,清除一下缓存。 本教程操作环境:windows7系统、PHP…

    2025年3月5日
    200
  • php删除数组中重复值的方法是什么

    php删除数组中重复值的方法:通过【array_unique()】函数删除数组中重复元素,将数组元素的值作为字符串排序,然后对每个值只保留第一个键名,忽略所有后面的键名,就是删除数组中重复的元素。 本教程操作环境:windows7系统、PH…

    2025年3月5日
    200
  • php中怎么转义html标签

    在PHP中,可以使用htmlentities()函数来转义html,能把字符转换为HTML实体,语法“htmlentities(string,flags,character-set,double_encode)”。PHP中也可以使用html…

    2025年3月5日 编程技术
    200
  • php如何设置301重定向跳转

    php设置301重定向跳转的方法:在跳转前设置状态码【header( “HTTP/1.1 301 Moved Permanently” );header(“Location:your_dest_url&#…

    2025年3月5日
    200
  • php 怎么获取当前几点

    php获取当前几点的方法:首先创建一个PHP示例文件;然后通过“echo date(‘Y-m-d h:i:s’, time());”语句直接获取并输出当前时间即可。 本文操作环境:windows7系统、PHP7.1版…

    2025年3月5日
    200

发表回复

登录后才能评论