php 获取ip地址的5种方法,插入用户登录日志实例
2017-11-22 15:39
651 查看
php 获取ip地址的5种方法,插入用户登录日志实例,推荐使用第二种方法
实例:在用户登录时获取用户IP,插入到数据库登录日志表里
日志表结构:
==========================
本人微信公众帐号: 心禅道(xinchandao)
本人微信公众帐号:双色球预测合买(ssqyuce)
<?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
==========================
本人微信公众帐号: 心禅道(xinchandao)
本人微信公众帐号:双色球预测合买(ssqyuce)
相关文章推荐
- PHP获取用户访问IP地址的5种方法
- PHP获取用户访问IP地址的5种方法
- PHP获取用户访问IP地址的5种方法
- PHP获取用户访问IP地址的5种方法
- PHP获取用户访问IP地址的5种方法
- PHP获取用户访问IP地址的5种方法
- PHP获取用户访问IP地址的5种方法
- PHP获取用户访问IP地址的5种方法
- php获取用户(客户端)真实IP地址的三种方法
- 微信第三方登陆,无需注册一键登录,获取用户信息,PHP实现方法
- 微信第三方登陆,无需注册一键登录,获取用户信息,PHP实现方法.
- 微信第三方登陆,无需注册一键登录,获取用户信息,PHP实现方法
- 微信第三方登陆,无需注册一键登录,获取用户信息,PHP实现方法.
- PHP版微信第三方实现一键登录及获取用户信息的方法
- 按时按登录IP记录Linux所有用户操作日志的方法(附脚本)
- 转:实例学习PHP程序对用户身份认证实现两种方法
- php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
- PHP实例——获取客户端IP地址