中山php|最优网络中山做网站 中山php建站

最优良人

2011/08/07 at 02:10

PHP显示客户端IP与服务器IP

打印客户端IP:echo $_SERVER['REMOTE_ADDR']; 或者: getenv('REMOTE_ADDR');

当时当客户端使用代理访问,那取到的是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。所以比较准确的获取客户ip的方法是:

function getip(){
if (getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')){
$ip = getenv('HTTP_CLIENT_IP');
}else if (getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')){
$ip = getenv('HTTP_X_FORWARDED_FOR');
}else if (getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')){
$ip = getenv('REMOTE_ADDR');
}else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')){
$ip = $_SERVER['REMOTE_ADDR'];
}
preg_match("/[\d\.]{7,15}/", $ip, $temp);
$ip = $temp[0] ? $temp[0] : 'unknown';
unset($temp);
return $ip;
}

打印服务器IP:echo gethostbyname(www.baidu.com);

打印服务器IP列表:echo gethostbynamel(www.baidu.com);

通过ip地址获取主机名:$hostname = gethostbyaddr('58.62.246.55');

标签:, ,
-