时间:2021-05-26
本文实例讲述了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程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
PHP获取用户真实IP方法1:PHP获取用户真实IP方法2:PHP获取用户真实IP方法3:PHP获取用户真实IP方法4:PHP获取用户真实IP方法5:PHP获取
本文实例为大家分享了5种PHP获取用户访问IP地址的方法,供大家参考,具体内容如下
今天查看登录日志,发现http_x_forwarded_for获取到的ip地址有些是内网ip地址,有些则是公网和内网ip地址一起获取到,用逗号分隔开,日志截图如
JS获取计算机mac地址以及IP的实现方法复制代码代码如下://这两个是系统里的ActiveX插件用来获取ip以及物理地址if(objObject.IPEnab
前言:PHP实现QQ快速登录,罗列了三种方法方法一:面向过程,回调地址和首次触发登录写到了一个方法页面【因为有了if做判断】,方法二,三:面向对象1.先调用登录