一直都是用的 getenv()函数,但是,有的时候服务器上是用的较老版本的IIS ,就会获取失败或者获取错误的信息,所以本函数能完整的兼容,已经用到了项目中代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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'];
       	else
           $ip = "unknown";
   		return($ip);
}

自由转载,转载请注明: 转载自WEB开发笔记 www.chhua.com

本文链接地址: PHP 获取客户端IP地址函数 http://www.chhua.com/web-note4504

相关笔记

更多