如何从CDN获取客户端真正的IP

时间:2017-03-28 03:25:35

标签: php

if ( getenv('HTTP_CLIENT_IP') ) {
    $ipaddress = getenv('HTTP_CLIENT_IP');
} else if( getenv('HTTP_X_FORWARDED_FOR') ) {
    $ipaddress = getenv('HTTP_X_FORWARDED_FOR');
    $ipaddress = explode(",", $ipaddress);
    $ipaddress = $ipaddress[0];
} 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';
}

如何从CDN获得真正的IP?我尝试谷歌它,但没有任何关于此的帖子。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:-2)

尝试使用$ _SERVER

$ipaddress = $_SERVER('HTTP_CLIENT_IP');

有时候getenv没有返回正确的IP地址,所以我们可以改用$ _SERVER。