2015-12-02 40 views
0

我在我的網站上有一個用戶註冊系統。我正在使用ip-api.com的xml ip api來檢測用戶的位置。我的問題是,我使用的PHP腳本返回代理或錯誤的IP地址的用戶,這就是爲什麼我他們不能在他們的個人資料中設置正確的位置。如何獲得真正的客戶端IP或地理位置在PHP?

我用下面的條件語句來獲取IP地址:

$ip=$_SERVER["REMOTE_ADDR"]; 
if(empty($ip)) 
{$ip= 

$ _ SERVER [ 「HTTP_X_FORWARDED_FOR」];}

它會返回錯誤的IP地址對於一些用戶。

是否有任何其他方式來獲得真正的IP或地理位置在PHP?

+3

沒有保證的方式來獲得一個「真實」的IP地址,如果代理並不想告訴你這件事(和任何真正的匿名代理韓元「T)。 –

+0

[在PHP中檢索用戶正確IP地址的最準確方法是什麼?](http://stackoverflow.com/questions/1634782/what-is-the-most-accurate-way-to-retrieve -a-users-correct-ip-address-in-php) –

回答

0

你可以看到這個話題:How to get Real IP from Visitor?

function getUserIP() 
{ 
    $client = @$_SERVER['HTTP_CLIENT_IP']; 
    $forward = @$_SERVER['HTTP_X_FORWARDED_FOR']; 
    $remote = $_SERVER['REMOTE_ADDR']; 
    if(filter_var($client, FILTER_VALIDATE_IP)) 
    { 
     $ip = $client; 
    } 
    elseif(filter_var($forward, FILTER_VALIDATE_IP)) 
    { 
     $ip = $forward; 
    } 
    else 
    { 
     $ip = $remote; 
    } 
    return $ip; 
} 
$user_ip = getUserIP(); 
+2

如果你認爲這個問題是重複的,然後相應地標記它。但不要只複製其他答案。 – Rizier123

相關問題