【问题标题】:HTTP_CLIENT_IP not working, REMOTE_ADDR is working, WHY?HTTP_CLIENT_IP 不工作,REMOTE_ADDR 工作,为什么?
【发布时间】:2016-11-19 12:05:27
【问题描述】:

我正在开发一个用于地理位置的 wordpress 插件。

这是我好奇的问题。为什么 HTTP_CLIENT_IP 没有显示任何内容? REMOTE_ADDR 显示我的 ip。

<?php
$ip = $_SERVER['HTTP_CLIENT_IP'];
echo $ip;
?>

【问题讨论】:

    标签: php web ip


    【解决方案1】:

    HTTP_CLIENT_IP 是来自共享互联网的 ip 但REMOTE_ADDR 是当前IP

    PHP 上的示例函数:

    function getRealIpAddr()
    {
        if (!empty($_SERVER['HTTP_CLIENT_IP']))   //check ip from share internet
        {
          $ip=$_SERVER['HTTP_CLIENT_IP'];
        }
        elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))   //to check ip is pass from proxy
        {
          $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
        }
        else
        {
          $ip=$_SERVER['REMOTE_ADDR'];
        }
        return $ip;
    }
    

    【讨论】:

    • 为什么不只是$_SERVER['REMOTE_ADDR']?在哪些情况下有人会使用另外两个?
    • 如果您信任 REMOTE_ADDR 上的标头,fake the IP 真的很容易;这通常是安全的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-23
    • 2013-07-01
    • 2017-07-28
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多