php如何获取客户端和服务端的真实ip地址呢?我用$_SERVER['REMOTE_ADDR']和$_SERVER['SERVER_ADDR']为什么获取到的ip地址都是一样的127.0.0.1呢?如何获取真实的客户端ip地址和服务端ip地址啊?求解答
/**
* 该方法获取请求客户端的真实IP地址 如果Web服务器部署在Proxy服务器之后,需要作特殊处理:
*
* @param request
* HTTP request
* @return client request source IP
*/
public static String......
答案就在这里:获取客户端和服务端的真实IP地址
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?
function getip() {
$unknown = 'unknown';
if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR'] && strcasecmp($_SERVER['HTTP_X_FORWARDED_FOR'], $unknown)) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], $unknown)) {
$ip = $_SERVER['REMOTE_ADDR'];
}
/--*
处理多层代理的情况
或者使用正则方式:$ip = preg_match("/[\d.]{7,15}/", $ip, $matches) ? $matches[0] : $unknown;
*--/
if (false !== strpos($ip, ',')){ $ip = reset(explode(',', $ip)); }
return $ip;
}