`
isiqi
  • 浏览: 16564854 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

PHP下得到客户端ip的方法

阅读更多
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// Example use of getenv()$ip = getenv('REMOTE_ADDR');
// Or simply use a Superglobal ($_SERVER or $_ENV)$ip = $_SERVER['REMOTE_ADDR'];?>

这是在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);
}

分享到:
评论

相关推荐

    Flex通过web返回客户端IP

    在服务器端,你可以使用各种编程语言(如Java、PHP、ASP.NET等)来处理请求并返回客户端IP。以下是一个简单的PHP示例: ```php &lt;?php header('Content-Type: application/x-www-form-urlencoded'); echo "ip=...

    PHP 获取客户端IP

    以下是一些关于如何在PHP中获取客户端IP的方法,以及相关的知识点。 首先,PHP提供了`$_SERVER`全局变量数组,它包含了服务器和请求的相关信息。`$_SERVER['REMOTE_ADDR']`是这个数组中的一个键,通常用于获取...

    php获取客户端IP,系统名称,系统语言

    php获取客户端IP,系统名称,系统语言

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

    在PHP中,获取客户端IP地址的方法通常是使用`$_SERVER['REMOTE_ADDR']`全局变量,但这可能在经过代理服务器时产生问题。因此,有时我们需要检查其他如`$_SERVER['HTTP_X_FORWARDED_FOR']`等变量来获取真实IP。 描述...

    php获取客户端真实ip

    php函数获取电脑客户端真实ip,包括代理

    PHP 显示客户端IP与服务器IP的代码

    PHP中获取客户端IP地址的常用方法有以下两种: 1. 使用$_SERVER超全局变量数组中的'REMOTE_ADDR'键值。这是最简单直接的方法。$_SERVER是一个包含了诸如头信息(header)、路径(path)、脚本位置(script locations)等...

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

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

    php获取客户端IP及URL的方法示例

    本文实例讲述了php获取客户端IP及URL的方法。分享给大家供大家参考,具体如下: function getonlineip(){//获取用户ip if($_SERVER['HTTP_CLIENT_IP']) { $onlineip=$_SERVER['HTTP_CLIENT_IP']; //用户IP } ...

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

    在IT网络环境中,当内网用户通过代理服务器或者NAT(网络地址转换)进行外部访问时,原始的客户端IP地址通常会被转换成公网上的一个统一IP,这导致服务端无法获取到真实的用户IP,这对于需要识别用户来源或者进行...

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

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

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

    在用户访问服务器时,服务器可以从`REMOTE_ADDR`、`HTTP_X_FORWARDED_FOR`、`HTTP_CLIENT_IP`等环境变量中获取客户端IP。如果用户经过了代理服务器,可能需要处理多个IP地址,通常`HTTP_X_FORWARDED_FOR`会包含用户...

    精确的在线人数统计,记录客户端的ip等等........

    记录客户端IP地址可以提供以下信息: - **用户识别**:虽然IP地址不等同于唯一用户,但可以作为区分不同访问者的一种手段。 - **地理位置**:通过IP地址可以大致判断用户所在的国家、地区,这对于地域定向服务和...

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

    4. **结合Nginx配置**:在Nginx作为反向代理的情况下,可以在Nginx配置中设置`proxy_set_header`,将真实的客户端IP传递给后端PHP服务: ```nginx location / { proxy_pass http://your-php-service; proxy_set...

    thinkphp如何获取客户端IP

    在本文中,我们将深入探讨ThinkPHP如何获取客户端IP以及一些通用的PHP方法。 首先,ThinkPHP框架内部提供了一个名为`get_client_ip`的方法,你可以直接在代码中调用它来获取客户端IP地址。以下是一个简单的使用示例...

    php下获取客户端ip地址的函数

    本文将详细解析两个在PHP下获取客户端IP地址的函数,并讨论不同情况下的IP获取策略。 首先,我们来看第一个函数`getip()`: ```php function getip() { $IP = getenv('REMOTE_ADDR'); $IP_ = getenv('...

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

    在PHP获取客户端IP中常使用 $_SERVER[“REMOTE_ADDR”] 。 (1) 但如果客户端是使用代理服务器来访问,那取到的是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得客户端的真实 IP 地址,...

    php 获取ip所在区域实例

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

Global site tag (gtag.js) - Google Analytics