打印客戶端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');