function getIp() { $realip = NULL; if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ipArray = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); foreach($ipArray as $rs) { $rs = trim($rs); if($rs != 'unknown') { $realip = $rs; break; } } } else if(isset($_SERVER['HTTP_CLIENT_IP'])) { $realip = $_SERVER['HTTP_CLIENT_IP']; } else { $realip = $_SERVER['REMOTE_ADDR']; } preg_match("/[d.]{7,15}/", $realip, $match); $realip = !empty($match[0]) ? $match[0] : '0.0.0.0'; return $realip; }
HTTP_X_FORWARDED_FOR:浏览当前页面的用户计算机的网关
如果用户是通过代理服务器浏览的 那么使用REMOTE_ADDR获取的IP地址是代理服务器的地址 而不是客户端的IP地址
使用HTTP_X_FORWARDED_FOR可以透过代理服务器来获取客户端的IP地址。
如果客户端并没有通过代理服务器来浏览当前页面,那么使用HTTP_X_FORWARDED_FOR获取的IP地址是空的.
HTTP_CLIENT_IP:客户端的IP.
REMOTE_ADDR :浏览当前页面的用户计算机的IP地址。
补充
打印客户端IP:echo $_SERVER[‘REMOTE_ADDR’]; 或者: getenv('REMOTE_ADDR');
打印服务器IP:echo gethostbyname("www.bolaiwu.com")