php获得用户的真实ip地址
/** * 获得用户的真实ip地址 * * @access public * @return string */function real_ip(){ static $realip = null; if ($realip !== null) { return $realip; } if (isset($_server)) { if (isset($_server['http_x_forwarded_for'])) { $arr = explode(',', $_server['http_x_forwarded_for']); /* 取x-forwarded-for中第一个非unknown的有效ip字符串 */ 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;}
?