【问题标题】:returning invalid ip adres with $server or $env使用 $server 或 $env 返回无效的 IP 地址
【发布时间】:2017-12-12 23:18:55
【问题描述】:

我正在处理一个问题......

当我想将客户的 ip 地址与表单一起发送时,表单发送的 ip 地址是这样的: "2a02:a456:4012:X:dcXX:56f5:XXX:555a" 而且它也在不断变化......

而不是我可以用来作为禁止人的实际 IP 地址,例如:“85.333.222.111”。

我使用这个代码:

function get_client_ip_server() {
    $ipaddress = '';
    if ($_SERVER['HTTP_CLIENT_IP'])
        $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
    else if($_SERVER['HTTP_X_FORWARDED_FOR'])
        $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
    else if($_SERVER['HTTP_X_FORWARDED'])
        $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
    else if($_SERVER['HTTP_FORWARDED_FOR'])
        $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
    else if($_SERVER['HTTP_FORWARDED'])
        $ipaddress = $_SERVER['HTTP_FORWARDED'];
    else if($_SERVER['REMOTE_ADDR'])
        $ipaddress = $_SERVER['REMOTE_ADDR'];
    else
        $ipaddress = 'ONBEKEND';

    return $ipaddress;
}

我使用这个代码:

function get_client_ip_env() {
    $ipaddress = '';
    if (getenv('HTTP_CLIENT_IP'))
        $ipaddress = getenv('HTTP_CLIENT_IP');
    else if(getenv('HTTP_X_FORWARDED_FOR'))
        $ipaddress = getenv('HTTP_X_FORWARDED_FOR');
    else if(getenv('HTTP_X_FORWARDED'))
        $ipaddress = getenv('HTTP_X_FORWARDED');
    else if(getenv('HTTP_FORWARDED_FOR'))
        $ipaddress = getenv('HTTP_FORWARDED_FOR');
    else if(getenv('HTTP_FORWARDED'))
        $ipaddress = getenv('HTTP_FORWARDED');
    else if(getenv('REMOTE_ADDR'))
        $ipaddress = getenv('REMOTE_ADDR');
    else
        $ipaddress = 'ONBEKEND';

    return $ipaddress;
}

都返回这些 IP 地址: "2a02:a456:4012:X:dcXX:56f5:XXX:555a

另外,非常重要的是:当我拒绝除我的 IP4 地址之外的所有地址时,我的 .htaccess 将不允许我访问。当我允许我的 IP6 地址时,它允许我,但该地址会不时更改。

有人可以指出我正确的方向并告诉我我在这里做错了什么吗?非常感谢您的帮助。

问候, 朱利安。

【问题讨论】:

    标签: php ip environment-variables


    【解决方案1】:

    我没有代表发表评论,但请查看此问题/答案:PHP $_SERVER['REMOTE_ADDR'] shows IPv6

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-25
      • 2021-12-13
      • 2014-08-15
      • 1970-01-01
      • 2016-12-01
      • 1970-01-01
      • 2015-06-21
      • 1970-01-01
      相关资源
      最近更新 更多