PHP获取客户端的ip地址

服务端怎样获取客服端的ip地址,下面这段PHP代码可以获取客服端的ip,在此分享下。

<?php
function getIp() {
	static $realip = NULL;
	if (isset($_SERVER)) {
		if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
			$arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
			foreach ($arr AS $ip) {
				$ip = trim($ip);
				if ($ip != 'unknown') {
					$realip = $ip;
					break;
				}
			}
		} elseif (isset($_SERVER['HTTP_CLIENT_IP'])){
			$realip = $_SERVER['HTTP_CLIENT_IP'];
		} else{
			if (isset($_SERVER['REMOTE_ADDR']))  {
				$realip = $_SERVER['REMOTE_ADDR'];
			}else{
				$realip = '0.0.0.0';
			}
		}
	} else{
		if (getenv('HTTP_X_FORWARDED_FOR')){
			$realip = getenv('HTTP_X_FORWARDED_FOR');
		} elseif (getenv('HTTP_CLIENT_IP')){
			$realip = getenv('HTTP_CLIENT_IP');
		} else {
			$realip = getenv('REMOTE_ADDR');
		}
	}
	preg_match("/[\d\.]{7,15}/", $realip, $onlineip);
	$realip = !empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0';
	return $realip;
}

//测试函数
$ip = getIp();
print $ip;

测试结果

getip

转载请注明出处:http://www.xiaomastack.com/2014/07/31/getclientip/ 谢谢!

发表评论:

你的电子邮件地址将不会被公开.

48 − = 45