获取请求来源的真实IP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if (!function_exists('get_client_ip')) {
function get_client_ip() {
$online_ip = '';
if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
$online_ip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
$online_ip = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
$online_ip = getenv('REMOTE_ADDR');
} elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
$online_ip = $_SERVER['REMOTE_ADDR'];
}
$ip_arr = explode(',',$online_ip);
$ip = $ip_arr[0];
return $ip;
}
}