`

php 获取客户端的真实ip

    博客分类:
  • PHP
阅读更多
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,包括代理

    PHP获取客户端真实IP地址的5种情况分析和实现代码

    ### PHP获取客户端真实IP地址的实现与分析 #### 1. 基本知识与常量 在PHP中,通常使用`$_SERVER["REMOTE_ADDR"]`来获取客户端的IP地址。这个服务器变量包含了发起请求的客户端的IP地址。然而,随着网络技术的发展...

    php获取客户端的ip、地理信息、浏览器信息等内容的类.zip

    这个"php获取客户端的ip、地理信息、浏览器信息等内容的类"就是一个非常实用的工具,可以帮助开发者轻松地实现这些功能。下面将详细介绍这个类库的工作原理和使用方法。 首先,获取客户端的IP地址是通过HTTP协议头...

    PHP获取用户客户端真实IP的解决方案

    获取客户端ip其实不是个简单的活儿,因为存在Ip欺骗,和代理问题,所以获取客户端的IP的真实性会打折扣的,...但是我们尽量使用比较完善的方法获取客户的ip,下面小编给大家分享PHP获取用户客户端真实IP的方法,一起看看吧

    NAT123端口映射获取客户端访问用户真实IP

    在ASP.NET中,可以通过检查`Request.ServerVariables`集合中的`HTTP_X_FORWARDED_FOR`变量来获取客户端IP。代码如下: ```csharp string ip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString(); ```...

    PHP 获取客户端IP

    总的来说,PHP获取客户端IP的过程涉及到对`$_SERVER`全局变量的理解,以及处理可能的代理服务器和IP头部。通过编写智能的函数,可以更准确地获取到客户端的IP地址,从而满足各种应用场景的需求。

    PHP 获取客户端真实IP地址多种方法小结

    在PHP编程中,获取客户端真实IP地址是一项常见的需求,尤其在网络数据分析、用户定位或安全防护等方面。客户端IP地址可以帮助我们了解用户的网络环境和位置。以下是一些常用的PHP方法来获取客户端IP地址: 1. **...

    php 获取ip所在区域实例

    // 获取客户端IP地址 $geoInfo = $ipLocation->getGeoInfo($ip); if ($geoInfo !== null) { echo "您来自:{$geoInfo['region']} - {$geoInfo['city']}"; } else { echo "无法确定您的位置信息。"; } ?> ``` ...

    PHP获取用户真实IP

    在PHP编程中,获取用户的真实IP地址是一项常见的任务,尤其在需要进行数据分析、日志记录或者安全防护等场景中。由于互联网的复杂性,用户的IP地址可能会被代理服务器、CDN服务、NAT转换等多层网络设备所遮蔽,因此...

    PHP获取真实客户端的真实IP

    本文将详细介绍PHP环境下如何获取客户端的真实IP地址。这在Web开发中是一个重要的知识点,尤其当服务器需要精确判断客户端位置或限制恶意访问时。在正常的HTTP通信过程中,客户端的真实IP地址是通过REMOTE_ADDR变量...

    PHP不同环境下获取真实的IP.txt

    ### PHP在不同环境下获取真实IP的方法 在Web开发过程中,获取客户端的真实IP地址是一项非常重要的功能,尤其是在需要...以上就是关于如何在不同的PHP环境中准确获取客户端真实IP地址的方法介绍。希望对您有所帮助!

    CDN获取真实IP

    通过以上几种方法,可以有效地解决CDN环境下获取客户端真实IP的问题。对于网站管理员来说,了解并掌握这些技术对于优化用户体验、加强安全防护等方面都具有重要意义。同时,随着技术的发展,未来还可能出现更多高效...

    一个可以取得客户端的ip、地理信息、浏览器、本地真实IP的php类库.zip

    在PHP编程中,获取客户端的信息是一项常见的需求,例如用户的IP地址、地理位置、浏览器类型以及本地真实IP等。这个名为"3ip类库"的压缩包提供了一个PHP类库,专门用于实现这些功能。下面我们将详细探讨这个类库的...

    PHP通过$_SERVER['REMOTE_ADDR']得到的是内网IP?如何才能获得客户的公网IP(真实IP地址).zip

    首先,`$_SERVER['REMOTE_ADDR']`是PHP用于获取客户端(浏览器)IP地址的一个变量,按照HTTP协议,这是服务器接收到的请求头中的信息。然而,如果用户访问你的网站经过了代理服务器或者负载均衡器,这个IP地址可能会...

    一个可以取得客户端的ip、地理信息、浏览器、本地真实IP的php类库

    在PHP编程中,获取客户端的信息是一项常见的需求,例如用户的IP地址、地理位置、浏览器信息以及本地真实IP等。这些数据在网站统计、用户行为分析、安全防护等方面都有重要作用。本篇文章将详细讲解如何利用PHP实现这...

    php 通过客户端IP获取国家,省份,城市名称

    总结起来,PHP获取客户端IP并获取其对应的国家、省份和城市名称,是通过调用API或查询IP数据库实现的。`php_get_ip`文件很可能是实现这一功能的代码资源,解压后在本地环境中运行,可以快速集成到项目中,为用户提供...

    THinkPHP获取客户端IP与IP地址查询的方法

    本文实例讲述了THinkPHP获取客户端IP与IP地址查询的方法。分享给大家供大家参考,具体如下: TP 中获取客户端IP地址的系统公共函数是:function get_client_ip()。返回值就是IP地址。 查询IP地址所在国家与地区的类...

Global site tag (gtag.js) - Google Analytics