我必須在php中獲取遠程系統的公共IP。 我試過如何在php中獲取客戶端的公共ip
$_SERVER['REMOTE_ADDR']
getenv('REMOTE_ADDR');
但是總是返回私有IP。幫助解決它。
我必須在php中獲取遠程系統的公共IP。 我試過如何在php中獲取客戶端的公共ip
$_SERVER['REMOTE_ADDR']
getenv('REMOTE_ADDR');
但是總是返回私有IP。幫助解決它。
試試這個:
$ip = !empty($_SERVER['HTTP_CLIENT_IP']) ? $_SERVER['HTTP_CLIENT_IP'] : (!empty($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR']);
警告:你應該繼承它和消毒,因爲頭可以很容易地操縱。
當我嘗試$ _SERVER [「HTTP_X_FORWARDED_FOR」]在線phpfiddle它是返回私人和公共IP,但在我的服務器是空的是否有任何事情要做的PHP ini文件? –
private function getIP()
{
$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;
}
echo getIP();
你試過'$ _SERVER [「HTTP_X_FORWARDED_FOR」]'? –
[如何在PHP中獲取客戶端IP地址?](http://stackoverflow.com/questions/3003145/how-to-get-the-client-ip-address-in-php) – Pindo
Ya i嘗試$ _SERVER ['HTTP_X_FORWARDED_FOR']也@Michelem –