【问题标题】:cakephp 2.3 not returning the user's real ipcakephp 2.3 不返回用户的真实 IP
【发布时间】:2013-07-02 23:19:25
【问题描述】:

我正在尝试使用函数“clientIp”来获取用户的真实 IP,但这并没有返回任何内容。 我正在使用这个:

$ipAddr = $this->request->clientIp();
print_r($ipAddr);die();

并打印它“::1”

而不是实际的ip打印,打印它::1

有人遇到过这个问题,怎么解决?

【问题讨论】:

    标签: cakephp cakephp-2.3 clientip


    【解决方案1】:

    在 cakephp 2.xx 中试试这个

    $this->request->clientIp();
    

    您可以使用原生 PHP 服务器变量

    $_SERVER['REMOTE_ADDR']
    

    这是我在 CakePhP 上的应用示例

    function get_realIp(){
      if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
            $_SERVER['REMOTE_ADDR']=$_SERVER['HTTP_X_FORWARDED_FOR'];
        }elseif(isset($_SERVER['HTTP_X_REAL_IP']){
            $_SERVER['REMOTE_ADDR']=$_SERVER['HTTP_X_REAL_IP'];
        }
    return $_SERVER['REMOTE_ADDR'];
    }
    

    如果我能帮助你更多,请告诉我。

    【讨论】:

    • 我测试了你引用的3种方式,三个都返回了这个::1我在localhost上测试这个功能,会影响吗?
    • 对不起,它会给你很多时间你的本地 ip,你应该需要在一些实时 ip 上进行测试。
    • 我在网上的主机上放了一个例子,它运行正常。感谢您的帮助。
    • 我很高兴为您提供帮助,@samuel_R
    猜你喜欢
    • 1970-01-01
    • 2013-06-15
    • 1970-01-01
    • 2011-01-23
    • 2016-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多