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);
}
regist=off的问题
if ($register_globals!=1) {
@extract($_SERVER, EXTR_SKIP);
@extract($_COOKIE, EXTR_SKIP);
@extract($_SESSION, EXTR_SKIP);
@extract($_POST, EXTR_SKIP);
@extract($_FILES, EXTR_SKIP);
@extract($_GET, EXTR_SKIP);
@extract($_ENV, EXTR_SKIP);
}
其中REMOTE_ADDR比较好理解,php手册上有说明它是预定的变量;而HTTP_x_FORWARDED_FOR呢,在网上找了一些资料,是这么说的
在PHP 中使用 $_SERVER["REMOTE_ADDR"] 来取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得客户端的真实 IP 地址,就要使用 $_SERVER["HTTP_X_FORWARDED_FOR"] 来读取。
不过要注意的事,并不是每个代理服务器都能用 $_SERVER["HTTP_X_FORWARDED_FOR"] 来读取客户端的真实 IP,有些用此方法读取到的仍然是代理服务器的 IP。
至于HTTP_CLIENT_IP,有篇贴子上说
'HTTP_CLIENT_IP'是用户的IP,'HTTP_X_FORWARDED_FOR'是代理的IP
这些IP头消息未必能够取得到(因为不同的浏览器不同的网络设备,可能发不同的IP头消息).所以PHP就尝试把每个IP头消息判断一下,若有,则取其中的一个.
引自:
http://www.jb51.net/article/21162.htm
分享到:
相关推荐
php函数获取电脑客户端真实ip,包括代理
### PHP获取客户端真实IP地址的实现与分析 #### 1. 基本知识与常量 在PHP中,通常使用`$_SERVER["REMOTE_ADDR"]`来获取客户端的IP地址。这个服务器变量包含了发起请求的客户端的IP地址。然而,随着网络技术的发展...
这个"php获取客户端的ip、地理信息、浏览器信息等内容的类"就是一个非常实用的工具,可以帮助开发者轻松地实现这些功能。下面将详细介绍这个类库的工作原理和使用方法。 首先,获取客户端的IP地址是通过HTTP协议头...
获取客户端ip其实不是个简单的活儿,因为存在Ip欺骗,和代理问题,所以获取客户端的IP的真实性会打折扣的,...但是我们尽量使用比较完善的方法获取客户的ip,下面小编给大家分享PHP获取用户客户端真实IP的方法,一起看看吧
在ASP.NET中,可以通过检查`Request.ServerVariables`集合中的`HTTP_X_FORWARDED_FOR`变量来获取客户端IP。代码如下: ```csharp string ip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString(); ```...
总的来说,PHP获取客户端IP的过程涉及到对`$_SERVER`全局变量的理解,以及处理可能的代理服务器和IP头部。通过编写智能的函数,可以更准确地获取到客户端的IP地址,从而满足各种应用场景的需求。
在PHP编程中,获取客户端真实IP地址是一项常见的需求,尤其在网络数据分析、用户定位或安全防护等方面。客户端IP地址可以帮助我们了解用户的网络环境和位置。以下是一些常用的PHP方法来获取客户端IP地址: 1. **...
// 获取客户端IP地址 $geoInfo = $ipLocation->getGeoInfo($ip); if ($geoInfo !== null) { echo "您来自:{$geoInfo['region']} - {$geoInfo['city']}"; } else { echo "无法确定您的位置信息。"; } ?> ``` ...
在PHP编程中,获取用户的真实IP地址是一项常见的任务,尤其在需要进行数据分析、日志记录或者安全防护等场景中。由于互联网的复杂性,用户的IP地址可能会被代理服务器、CDN服务、NAT转换等多层网络设备所遮蔽,因此...
本文将详细介绍PHP环境下如何获取客户端的真实IP地址。这在Web开发中是一个重要的知识点,尤其当服务器需要精确判断客户端位置或限制恶意访问时。在正常的HTTP通信过程中,客户端的真实IP地址是通过REMOTE_ADDR变量...
### PHP在不同环境下获取真实IP的方法 在Web开发过程中,获取客户端的真实IP地址是一项非常重要的功能,尤其是在需要...以上就是关于如何在不同的PHP环境中准确获取客户端真实IP地址的方法介绍。希望对您有所帮助!
通过以上几种方法,可以有效地解决CDN环境下获取客户端真实IP的问题。对于网站管理员来说,了解并掌握这些技术对于优化用户体验、加强安全防护等方面都具有重要意义。同时,随着技术的发展,未来还可能出现更多高效...
在PHP编程中,获取客户端的信息是一项常见的需求,例如用户的IP地址、地理位置、浏览器类型以及本地真实IP等。这个名为"3ip类库"的压缩包提供了一个PHP类库,专门用于实现这些功能。下面我们将详细探讨这个类库的...
在PHP编程中,获取客户端的信息是一项常见的需求,例如用户的IP地址、地理位置、浏览器信息以及本地真实IP等。这些数据在网站统计、用户行为分析、安全防护等方面都有重要作用。本篇文章将详细讲解如何利用PHP实现这...
总结起来,PHP获取客户端IP并获取其对应的国家、省份和城市名称,是通过调用API或查询IP数据库实现的。`php_get_ip`文件很可能是实现这一功能的代码资源,解压后在本地环境中运行,可以快速集成到项目中,为用户提供...
本文实例讲述了THinkPHP获取客户端IP与IP地址查询的方法。分享给大家供大家参考,具体如下: TP 中获取客户端IP地址的系统公共函数是:function get_client_ip()。返回值就是IP地址。 查询IP地址所在国家与地区的类...
在服务器端,这可以通过访问HTTP请求头中的`X-Forwarded-For`或者`Remote-Addr`字段来实现,这些字段通常包含了客户端的真实IP地址。 3. **本地测试**: 当在本地进行测试时,由于Flex应用通常运行在开发者机器上...