获取内网IP地址

如果要查询电脑的内网IP地址,在终端cmd用命令

ipconfig /all

就可以查询到了。

20210915004718.png

获取外网IP地址

如果要查询电脑的外网IP地址,一般的做法都是通过百度搜索引擎搜索”IP”关键词得到结果。不过,这种通过百度出来的IP地址,很多时候是不准确的,即使IP最后段位的一字之差也是致命错误。

20210915005832.png

代码获取访问者真实IP

我们编写好一段判断是未知IP还是已知IP的代码,进行测试的时候就需要知道电脑的真实外网IP了。而根据我的经验讲,上图百度出来的IP很多时候最后一段是有误差的,具体什么原因不清楚,同时也遇到过本地电脑在科学上网时造成本机外网IP地址的不清不楚。

此时,就需要在你测试代码的服务器端,创建个文件,写入一段判断访问者IP地址的代码了就可以了,无论什么原因它都可以获取并且输出真实访问的IP地址了。所谓活学活用,至于为什么判断IP地址相信同行人都懂的。。。

20210915012551.png

<?php
function get_real_ip()
{
    $ip=false;

    //客户端IP 或 NONE

    if (!empty($_SERVER["HTTP_CLIENT_IP"])) {
        $ip = $_SERVER["HTTP_CLIENT_IP"];
    }

    //多重代理服务器下的客户端真实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;
            }
        }
    }

    //客户端IP 或 (最后一个)代理服务器 IP

    return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}

echo get_real_ip();
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。