getenv--Gets the value of an environment variable
Description
string
getenv ( string varname )
Returns the value of the environment variable varname, or FALSE on an error.
这是在PHP官方的manual提供的方法。
但是当Web服务器API是ASAPI (IIS)的时候,getenv函数是不起作用的。这种情况下你如果用getenv来取得用户客户端ip的话,得到的将是错误的ip地址。
因此更为安全和准确的方法是尽量避免使用getenv函数。比如可以用以下的函数来获取ip信息:
//Get the real client IP ("bullet-proof")
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);
}
分享到:
相关推荐
在服务器端,你可以使用各种编程语言(如Java、PHP、ASP.NET等)来处理请求并返回客户端IP。以下是一个简单的PHP示例: ```php <?php header('Content-Type: application/x-www-form-urlencoded'); echo "ip=...
以下是一些关于如何在PHP中获取客户端IP的方法,以及相关的知识点。 首先,PHP提供了`$_SERVER`全局变量数组,它包含了服务器和请求的相关信息。`$_SERVER['REMOTE_ADDR']`是这个数组中的一个键,通常用于获取...
php获取客户端IP,系统名称,系统语言
在PHP中,获取客户端IP地址的方法通常是使用`$_SERVER['REMOTE_ADDR']`全局变量,但这可能在经过代理服务器时产生问题。因此,有时我们需要检查其他如`$_SERVER['HTTP_X_FORWARDED_FOR']`等变量来获取真实IP。 描述...
php函数获取电脑客户端真实ip,包括代理
PHP中获取客户端IP地址的常用方法有以下两种: 1. 使用$_SERVER超全局变量数组中的'REMOTE_ADDR'键值。这是最简单直接的方法。$_SERVER是一个包含了诸如头信息(header)、路径(path)、脚本位置(script locations)等...
这个"php获取客户端的ip、地理信息、浏览器信息等内容的类"就是一个非常实用的工具,可以帮助开发者轻松地实现这些功能。下面将详细介绍这个类库的工作原理和使用方法。 首先,获取客户端的IP地址是通过HTTP协议头...
本文实例讲述了php获取客户端IP及URL的方法。分享给大家供大家参考,具体如下: function getonlineip(){//获取用户ip if($_SERVER['HTTP_CLIENT_IP']) { $onlineip=$_SERVER['HTTP_CLIENT_IP']; //用户IP } ...
在IT网络环境中,当内网用户通过代理服务器或者NAT(网络地址转换)进行外部访问时,原始的客户端IP地址通常会被转换成公网上的一个统一IP,这导致服务端无法获取到真实的用户IP,这对于需要识别用户来源或者进行...
本文实例讲述了THinkPHP获取客户端IP与IP地址查询的方法。分享给大家供大家参考,具体如下: TP 中获取客户端IP地址的系统公共函数是:function get_client_ip()。返回值就是IP地址。 查询IP地址所在国家与地区的类...
在用户访问服务器时,服务器可以从`REMOTE_ADDR`、`HTTP_X_FORWARDED_FOR`、`HTTP_CLIENT_IP`等环境变量中获取客户端IP。如果用户经过了代理服务器,可能需要处理多个IP地址,通常`HTTP_X_FORWARDED_FOR`会包含用户...
记录客户端IP地址可以提供以下信息: - **用户识别**:虽然IP地址不等同于唯一用户,但可以作为区分不同访问者的一种手段。 - **地理位置**:通过IP地址可以大致判断用户所在的国家、地区,这对于地域定向服务和...
4. **结合Nginx配置**:在Nginx作为反向代理的情况下,可以在Nginx配置中设置`proxy_set_header`,将真实的客户端IP传递给后端PHP服务: ```nginx location / { proxy_pass http://your-php-service; proxy_set...
在本文中,我们将深入探讨ThinkPHP如何获取客户端IP以及一些通用的PHP方法。 首先,ThinkPHP框架内部提供了一个名为`get_client_ip`的方法,你可以直接在代码中调用它来获取客户端IP地址。以下是一个简单的使用示例...
本文将详细解析两个在PHP下获取客户端IP地址的函数,并讨论不同情况下的IP获取策略。 首先,我们来看第一个函数`getip()`: ```php function getip() { $IP = getenv('REMOTE_ADDR'); $IP_ = getenv('...
在PHP获取客户端IP中常使用 $_SERVER[“REMOTE_ADDR”] 。 (1) 但如果客户端是使用代理服务器来访问,那取到的是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得客户端的真实 IP 地址,...
// 获取客户端IP地址 $geoInfo = $ipLocation->getGeoInfo($ip); if ($geoInfo !== null) { echo "您来自:{$geoInfo['region']} - {$geoInfo['city']}"; } else { echo "无法确定您的位置信息。"; } ?> ``` ...