2011-09-05 32 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