2011-09-05 66 views
0

我想真正的IP,以kown我怎样才能得到真正的IP上Symfony框架的客户端的获取的symfony

我知道一个函数,可以得到它:

 

    if (!empty($_SERVER["HTTP_CLIENT_IP"])) 
    { 
    //check for ip from share internet 
    $ip = $_SERVER["HTTP_CLIENT_IP"]; 
    } 
    elseif (!empty($_SERVER["HTTP_X_FORWARDED_FOR"])) 
    { 
    // Check for the Proxy User 
    $ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; 
    } 
    else 
    { 
    $ip = $_SERVER["REMOTE_ADDR"]; 
    } 

其实我就用这个你为什么要

 

    sfContext::getInstance()->getRequest()->getHttpHeader('addr', 'remote'); 

我在Symfony的1.0.22

+2

简短的回答是,你不能(与任何技术),如果客户端不想要它,并采取适当的行动。 – delnan

回答

2

:symfony的,但它不是reallity使用Symfony包装器来实现这样一个微不足道的功能?

BTW - 任何人都可以注入在请求额外的头 - 但欺骗客户端IP地址需要多一点的工作。所以你使用的方法微不足道。 Symfony没有魔术来解决这个问题。

+0

因为“Symfony是一个面向对象的框架,并且强烈建议不要使用PHP的超级全局变量。” https://insight.sensiolabs.com/what-we-analyse/symfony.use_super_globals – johnnyevolunium

+0

LOL ............. – symcbean