zoukankan      html  css  js  c++  java
  • PHP获取客户端真实IP

    今天学习了一下PHP获取客户端真实IP,又遇到坑(不完全算坑,就是不懂吧)...

    代码如下:

    //获取客户端真实IP
    function getIp() {
        if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
            $ip = getenv("HTTP_CLIENT_IP");
        else
            if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
                $ip = getenv("HTTP_X_FORWARDED_FOR");
            else
                if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
                    $ip = getenv("REMOTE_ADDR");
                else
                    if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
                        $ip = $_SERVER['REMOTE_ADDR'];
                    else
                        $ip = "unknown";
        return ($ip);
    }

    代码其实没问题,本地测试一下,结果要么获取了127.0.0.1,要么是:::。

    找了一堆博客大都这样写,那问题是?

    最后放到阿里云服务器再本地客户端测试一下,结果成功了。。。

    原因可能是因为$_SERVER["HTTP_CLIENT_IP"]这个可以获取客户端的IP,她存在于http请求的header中(但是它可以伪造),本地没有数据,所以会出错(来自http://blog.163.com/the_big_girl/blog/static/17371530020158118204740/)


  • 相关阅读:
    找水王续
    找水王续
    本周学习进度
    Node.js 学习
    在Linux机器上安装MySQL
    ZStack串口通信
    Java编写串口程序
    ServerSocket
    ZigBee毕设
    ZigBee相关网站链接
  • 原文地址:https://www.cnblogs.com/qq1995/p/10359010.html
Copyright © 2011-2022 走看看