`

PHP获得用户的真实IP地址

    博客分类:
  • PHP
阅读更多
/**
 * 获得用户的真实IP地址
 *
 * @access  public
 * @return  string
 */
function real_ip()
{
    static $realip = NULL;
 
    if ($realip !== NULL)
    {
        return $realip;
    }
 
    if (isset($_SERVER))
    {
        if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
        {
            $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
 
            /* 取X-Forwarded-For中第一个非unknown的有效IP字符串 */
            foreach ($arr AS $ip)
            {
                $ip = trim($ip);
 
                if ($ip != 'unknown')
                {
                    $realip = $ip;
 
                    break;
                }
            }
        }
        elseif (isset($_SERVER['HTTP_CLIENT_IP']))
        {
            $realip = $_SERVER['HTTP_CLIENT_IP'];
        }
        else
        {
            if (isset($_SERVER['REMOTE_ADDR']))
            {
                $realip = $_SERVER['REMOTE_ADDR'];
            }
            else
            {
                $realip = '0.0.0.0';
            }
        }
    }
    else
    {
        if (getenv('HTTP_X_FORWARDED_FOR'))
        {
            $realip = getenv('HTTP_X_FORWARDED_FOR');
        }
        elseif (getenv('HTTP_CLIENT_IP'))
        {
            $realip = getenv('HTTP_CLIENT_IP');
        }
        else
        {
            $realip = getenv('REMOTE_ADDR');
        }
    }
 
    preg_match("/[\d\.]{7,15}/", $realip, $onlineip);
    $realip = !empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0';
 
    return $realip;
}

 

分享到:
评论

相关推荐

    php获得用户ip地址的比较不错的方法

    如某大学校园网中自己设置的10.X.XXX.XXX系列IP,而这个函数获取的是局域网网关出口的IP地址,如果访问者使用代理服务器,将不获取代理服务器的IP,而是获取访问者网关的真实IP。如果将这个函数应用到限IP访问的网页...

    php获取访问者IP地址汇总

    在很我的时候我们需要得到用户的真实IP地址,例如,日志记录,地理定位,将用户信息,网站数据分析等,其实获取IP地址很简单$_SERVER['REMOTE_ADDR']就可以了。下面我们就来给大家汇总一下常用的几种获取IP地址的方法...

    PHP函数库,PHP函数大全,PHP函数实例,PHP函数手册,PHP5函数库实例

    获得用户的真实IP地址 计算字符串的长度(汉字按照两个字符计算) 设为主页 转换附件大小单位 转静态函数 遍历文件夹文件 采集网络数据 随机字符串 验证码 验证码类 验证输入的邮件地址是否合法

    PHP获得用户使用的代理服务器ip即真实ip

    http://www.phpchina.com/bbs/thread-12239-1-1.html 在PHP 中用 $_SERVER[“REMOTE_ADDR”] 来取得客户端的 IP 地址 但如果客户端是使用代理服务器来访问 那取到的就是代理服务器的 IP 地址 要想透过代理...

    阿西网站推广系统 5.29.rar

    五、自动开启防止代理IP欺骗系统机制,并识别用户真实IP; 安装方法: 1、将upload目录下的文件全部上传至网站目录 2、执行 http://域名/install/index.php 3、根据提示输入数据库配置信息进行安装即可 后台...

    搜索引擎优化高级编程(PHP版)

    3.3 真实世界的URL地址 3.3.1 实例#1:动态URL地址 3.3.2 实例#2:数字化重写URL地址 3.3.3 实例#3:多关键词重写URL地址 3.3.4 保持URL的一致性 3.4 URL重写 3.4.1 安装 mod_rewrite 3.4.2 测试mod_rewrite 3.4.3 ...

    Thinkphp5.1内核京东淘宝唯品会自动抢单系统源码 全开源.zip

    智能云服务器自动化提交订单,用户只需要在平台提供真实的收货地址、电话和一些真实的购物信息, 即可由智能云控制远程电脑机器人自动模拟人工提交订单操作流程,让网购订单匹配变得更加高效简单! 平台每天都会将...

    Thinkphp开发云淘客 修复版+京东淘宝唯品会自动抢单系统+智能云服务器自动化提交订单

    智能云服务器自动化提交订单,用户只需求在途径供应真实的收货地址、电话和一些真实的购物信息, 即可由智能云控制远程电脑机器人自动模仿人工提交订单操作流程,让网购订单匹配变得更加高效简略! 途径每天都会将...

    .htaccess

    当然,这只在你知道你想拦截的IP地址时才有用,然而现在网上的大多数用户都使用动态IP地址,所以这并不是限制使用的常用方法。 <br>You can block an IP address by using: 你可以使用以下命令封禁一个IP地址...

    B2Bbuilder(B2B电子商务网站) 7.0.1.zip

    和第三方地图合作,可以自动识别用户的地址,在地图上标出来 在线反馈 访客留言给网站,便于及时反馈问题和解决。管理员可以和邮箱绑定,直接将信息发到邮件中 纠错模块 当用户发布错误某些信息的时候,被另外的...

    JAVA上百实例源码以及开源项目

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    JAVA上百实例源码以及开源项目源代码

    //得到服务器地址  String user=jtfUser.getText(); //得到用户名  String pass=jtfPass.getPassword().toString(); //得到密码  ftpClient.openServer(serverAddr); //连接到服务器  ftpClient.login(user...

    uboott移植实验手册及技术文档

    实验三 移植U-Boot-1.3.1 实验 【实验目的】 了解 U-Boot-1.3.1 的代码结构,掌握其移植方法。 【实验环境】 1、Ubuntu 7.0.4发行版 2、u-boot-1.3.1 3、FS2410平台 4、交叉编译器 arm-softfloat-linux-gnu-...

Global site tag (gtag.js) - Google Analytics