• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例

    本文实例讲述了PHP实现获取ip地址的5种方法,以及插入用户登录日志操作。分享给大家供大家参考,具体如下:

    php 获取ip地址的5种方法,插入用户登录日志实例,推荐使用第二种方法

    ?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 ("^(10│172.16│192.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字符串(string)用法总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数学运算技巧总结》及《php常见数据库操作技巧汇总》

    希望本文所述对大家PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • php实现统计IP数及在线人数的示例代码
    • bt宝塔面板php7.3、php7.4不支持ZipArchive解决方法
    • 通过PHP实现获取访问用户IP
    • 原生javascript的ajax请求及后台PHP响应操作示例
    • PHP生成zip压缩包的常用方法示例
    • php解压缩zip和rar压缩包文件的方法
    • 实例介绍PHP中zip_open()函数用法
    • PHP获取真实IP及IP模拟方法解析
    上一篇:PHP微信发送推送消息乱码的解决方法
    下一篇:PHP中rename()函数的妙用讲解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例 PHP,实现,获取,地址,的,5种,