1. <output id="hzk7v"><pre id="hzk7v"><address id="hzk7v"></address></pre></output>
      <output id="hzk7v"></output>
    2. <nav id="hzk7v"><i id="hzk7v"><em id="hzk7v"></em></i></nav>
    3. <listing id="hzk7v"><delect id="hzk7v"><em id="hzk7v"></em></delect></listing>

      PHP实现获取ip地址的5?#22336;?#27861;以及插入用户登录日志操作示例

       更新时间2019年02月28日 11:26:42   作者流风飘然的风   我要评论

      这篇文章主要介绍了PHP实现获取ip地址的5?#22336;?#27861;以及插入用户登录日志操作,结合实例形式总结分析了php获取访客IP地址的5种常见操作方法,以及将用户登陆信息写入登陆日志数据库相关操作技巧,需要的朋友可以参考下

      本文实例讲述了PHP实现获取ip地址的5?#22336;?#27861;以及插入用户登录日志操作分享给大家供大家参考具体如下

      php 获取ip地址的5?#22336;?#27861;插入用户登录日志实例推荐使用第二?#22336;?#27861;

      <?php  //方法1
      $ip = $_SERVER["REMOTE_ADDR"];
      echo $ip;
      //方法2
      $ip = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
      $ip = ($ip) ? $ip : $_SERVER["REMOTE_ADDR"];
      echo $ip;
      //方法3
      function getRealIp()
      {
        $ip=false;
        if(!empty($_SERVER["HTTP_CLIENT_IP"])){
          $ip = $_SERVER["HTTP_CLIENT_IP"];
        }
        if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
          $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
          if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }
          for ($i = 0; $i < count($ips); $i++) {
            if (!eregi ("^(10172.16192.168).", $ips[$i])) {
              $ip = $ips[$i];
              break;
            }
          }
        }
        return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
      }
      echo getRealIp();
      //方法4
      if ($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"])
      {
        $ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
      }
      elseif ($HTTP_SERVER_VARS["HTTP_CLIENT_IP"])
      {
        $ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
      }
      elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"])
      {
        $ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
      }
      elseif (getenv("HTTP_X_FORWARDED_FOR"))
      {
        $ip = getenv("HTTP_X_FORWARDED_FOR");
      }
      elseif (getenv("HTTP_CLIENT_IP"))
      {
        $ip = getenv("HTTP_CLIENT_IP");
      }
      elseif (getenv("REMOTE_ADDR"))
      {
        $ip = getenv("REMOTE_ADDR");
      }
      else
      {
        $ip = "Unknown";
      }
      echo $ip ;
      //方法5
      if(getenv('HTTP_CLIENT_IP')) {
        $onlineip = getenv('HTTP_CLIENT_IP');
      } elseif(getenv('HTTP_X_FORWARDED_FOR')) {
        $onlineip = getenv('HTTP_X_FORWARDED_FOR');
      } elseif(getenv('REMOTE_ADDR')) {
        $onlineip = getenv('REMOTE_ADDR');
      } else {
        $onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
      }
      echo $onlineip;
      
      

      实例在用户登录时获取用户IP插入到数据库登录日志表里

      //增加用户登录日志
      $ip = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
      $ip = ($ip) ? $ip : $_SERVER["REMOTE_ADDR"];
      $this->usermodel->addUserlog($userid,$nickname,$ip);
      function addUserlog($userid,$nickname,$ip) {
          try {
            $now = date("Y-m-d H-i-s",time());
            $data=array(
              'userid'=>$userid,
              'nickname'=>$nickname,
              'ip'=>$ip,
              'logintime'=>$now
            );
            $insert_query = $this->db->insert_string('user_log', $data);
            $this->db->query($insert_query);
            return 0;
          } catch ( Exception $e ) {
            return -1;
          }
      }
      
      

      日志表结构

      CREATE TABLE `user_log` (
       `id` bigint(20) NOT NULL AUTO_INCREMENT,
       `userid` bigint(20) NOT NULL,
       `nickname` varchar(50) NOT NULL,
       `ip` varchar(50) NOT NULL,
       `logintime` datetime NOT NULL,
       PRIMARY KEY (`id`)
      ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8
      
      

      更多关于PHP相关内容感兴趣的读者可查看本站专题PHP网络编程技巧总结php curl用法总结PHP数组(Array)操作技巧大全php?#22336;?#20018;(string)用法总结PHP数据结构与算法教程php程序设计算法总结PHP数学运算技巧总结php常见数据库操作技巧汇总

      希望本文所述?#28304;?#23478;PHP程序设计?#20852;?#24110;助

      相关文章

      • PHP5多态性与动态绑定介绍

        PHP5多态性与动态绑定介绍

        这篇文章主要介绍了PHP5多态性与动态绑定介绍,本文主要讲解了什?#35789;?#22810;态性和什?#35789;?#21160;态绑定,并给出相应实例,需要的朋友可以参考下
        2015-04-04
      • PHP数据库编程之MySQL优化策略概述

        PHP数据库编程之MySQL优化策略概述

        这篇文章主要介绍了PHP数据库编程之MySQL优化策略,简单讲述了mysql优化的简单技巧以及索引优化查询优化存储优化等相关操作技巧,需要的朋友可以参考下
        2017-08-08
      • PHP n个不重复的随机数生成代码

        PHP n个不重复的随机数生成代码

        PHP n个不重复的随机数生成代码原理就是将数组顺序随即打乱 然取该数组中的某一段
        2009-06-06
      • php实现的CSS更新类实例

        php实现的CSS更新类实例

        这篇文章主要介绍了php实现的CSS更新类及其用法实例,包括了针对模板文件的检查更新与替换模板文件等功能,非常实用,需要的朋友可以参考下
        2014-09-09
      • phpmyadmin导入(import)文件限制的解决办法

        phpmyadmin导入(import)文件限制的解决办法

        最近一次在用phpmyadmin备份mysql数据库时没有分段大小一下子备份了一百多M的sql数据在导入的时候提示超过2M导入限制前一段时间遇到过一次后来利用网站后台的自动分段处理了这次又遇到这个问题决心解决一下
        2009-12-12
      • PHP简单日历实现方法

        PHP简单日历实现方法

        这篇文章主要介绍了PHP简单日历实现方法,涉及php日期与时间的相关运算操作,非常简单实用,需要的朋友可以参考下
        2016-07-07
      • 浅析php中如何在有限的内存中读取大文件

        浅析php中如何在有限的内存中读取大文件

        突然遇到了一个要读取超过80M文件的需求很悲剧的不管是file_get_content还是file什么的都会将读取的文件一次性加载到内存中
        2013-07-07
      • ajax 的post方法实例(带循环)

        ajax 的post方法实例(带循环)

        在最近的项目中为了能解决在大数据查询中出现的超时问题需要将大数据拆分成小数据然后进行循环处理本人经验不足技术有限只能想到用ajax来传送数据
        2011-07-07
      • php curl post 时出现的问题解决

        php curl post 时出现的问题解决

        这篇文章主要介绍了php curl post 时出现问题的解决方法,需要的朋友可以参考下
        2014-01-01
      • 非常实用的php弹出错误警告函数扩展性强

        非常实用的php弹出错误警告函数扩展性强

        利用php弹出警告的函数整理到自己的代码库中去在遇到错误的地方可用到此函数扩展性强?#19981;?#30340;朋友可以收藏下
        2014-01-01

      最新评论

      3dԻв

        1. <output id="hzk7v"><pre id="hzk7v"><address id="hzk7v"></address></pre></output>
          <output id="hzk7v"></output>
        2. <nav id="hzk7v"><i id="hzk7v"><em id="hzk7v"></em></i></nav>
        3. <listing id="hzk7v"><delect id="hzk7v"><em id="hzk7v"></em></delect></listing>

            1. <output id="hzk7v"><pre id="hzk7v"><address id="hzk7v"></address></pre></output>
              <output id="hzk7v"></output>
            2. <nav id="hzk7v"><i id="hzk7v"><em id="hzk7v"></em></i></nav>
            3. <listing id="hzk7v"><delect id="hzk7v"><em id="hzk7v"></em></delect></listing>