2015-09-05 116 views
-1

我需要獲取客戶端的公網IP地址。如何獲取客戶端的公網IP地址

我曾嘗試

getenv('REMOTE_ADDR') and also $_SERVER['REMOTE_ADDR'] 

但它只返回私有IP ...

+0

你在本地機器上運行服務器嗎? – lifeisfoo

+0

IP地址對服務器來說沒有實際價值,因爲它們相關的拓撲不受服務器控制。所以地址是不可信的。那爲了什麼? – arkascha

+4

[使用PHP獲取客戶端IP地址]的可能重複(http://stackoverflow.com/questions/15699101/get-the-client-ip-address-using-php) – Shehary

回答

2

伊夫用這個:

function GetIp(){ 
//IP ADDRESS 
    $ipaddress = ''; 
if (getenv('HTTP_CLIENT_IP')) 
    $ipaddress = getenv('HTTP_CLIENT_IP'); 
else if(getenv('HTTP_X_FORWARDED_FOR')) 
    $ipaddress = getenv('HTTP_X_FORWARDED_FOR'); 
else if(getenv('HTTP_X_FORWARDED')) 
    $ipaddress = getenv('HTTP_X_FORWARDED'); 
else if(getenv('HTTP_FORWARDED_FOR')) 
    $ipaddress = getenv('HTTP_FORWARDED_FOR'); 
else if(getenv('HTTP_FORWARDED')) 
    $ipaddress = getenv('HTTP_FORWARDED'); 
else if(getenv('REMOTE_ADDR')) 
    $ipaddress = getenv('REMOTE_ADDR'); 
else 
    $ipaddress = 'UNKNOWN'; 
$AgentIp = $ipaddress; 

return $AgentIp; 

} 
0

我找了同樣的問題,發現大基於解決方案API。

爲了讓我們可以可以使用下面的代碼的公共IP地址:

<?php 
$ip = file_get_contents('https://api.ipify.org'); 
echo "My public IP address is: " . $ip; 
?> 

API網站網址:https://www.ipify.org/

這是爲時已晚asnwer就這一點,但它可能是halpful他人。

+0

它返回服務器IP而不是客戶端IP – 151291

相關問題