get_client_ip()
然后可以将其保存到session
session('userip',get_client_ip());
模板中
public function login()
{
$password=$this->ad_password;
$info=$this->where("ad_name='$this->ad_name'")->find();
if($info)
{
if(md5($password)==$info['ad_password'])
{
session('id',$info['ad_id']);
session('username',$info['ad_name']);
session('userip',get_client_ip());
/*ip 定位*/
$Ip = new \Org\Net\IpLocation('UTFWry.dat'); // 实例化类 参数表示IP地址库文件
// 获取某个IP地址所在的位置
$area = $Ip->getlocation($_SESSION['userip']) ;
/*保存获取的ip定位信息*/
session('country',$area['country']);
session('area',$area['area']);
$data['username'] = $_SESSION['username'];
$data['ip'] = $_SESSION['userip'];
$data['logintime'] = time();
$data['country'] = $area['country'];
$data['area'] = $area['area'];
$log = M("log"); // 实例化Userlog对象
$add = $log->data($data)->add();
return true;
}
}
else
{
return false;
}
}
控制器中
<?php
namespace Admin\Controller;
use Think\Controller;
class UserloginController extends Controller {
public function lst()
{
$userlog = M('log'); // 实例化User对象
$count= $userlog->count();// 查询满足要求的总记录数
$Page= new \Think\Page($count,3);// 实例化分页类 传入总记录数和每页显示的记录数(25)
$Page->setConfig('prev', '上一页');
$Page->setConfig('next', '下一页');
$show = $Page->show();// 分页显示输出
$list = $userlog->order('id desc')->limit($Page->firstRow.','.$Page->listRows)->select();
$this->assign('list',$list);// 赋值数据集
$this->assign('page',$show);// 赋值分页输出
$this->display();
}
public function del($id){
$userlog=D('log');
if($userlog->delete($id)){
$this->success('日志删除成功!',U('lst'));
}else{
$this->error('日志删除失败!');
}
}
public function bdel(){
$userlog=D('log');
$bdel=I('bdel');
$bdel=implode(',',$bdel);
if($userlog->delete($bdel)){
$this->success('日志批量删除成功!',U('lst'));
}else{
$this->error('日志批量删除失败!');
}
}
}
前台
<tr>
<td><table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#a8c7ce" onmouseover="changeto()" onmouseout="changeback()">
<tr>
<td width="4%" height="20" bgcolor="d3eaef" class="STYLE10"><div align="center">
<input type="checkbox" name="checkbox" id="selall" />
</div></td>
<td width="10%" height="20" bgcolor="d3eaef" class="STYLE6"><div align="center"><span class="STYLE10">id</span></div></td>
<td width="27%" height="20" bgcolor="d3eaef" class="STYLE6"><div align="center"><span class="STYLE10">登录用户名</span></div></td>
<td width="10%" height="20" bgcolor="d3eaef" class="STYLE6"><div align="center"><span class="STYLE10">用户ip</span></div></td>
<td width="10%" height="20" bgcolor="d3eaef" class="STYLE6"><div align="center"><span class="STYLE10">登录ip地址</span></div></td>
<td width="10%" height="20" bgcolor="d3eaef" class="STYLE6"><div align="center"><span class="STYLE10">登录时间</span></div></td>
<td width="14%" height="20" bgcolor="d3eaef" class="STYLE6"><div align="center"><span class="STYLE10">基本操作</span></div></td>
</tr>
<volist name="list" id="vo">
<tr>
<td height="20" bgcolor="#FFFFFF"><div align="center">
<input type="checkbox" class="selall" name="bdel[]" value="{$vo.id}" />
</div></td>
<td height="20" bgcolor="#FFFFFF" class="STYLE6"><div align="center"><span class="STYLE19">{$vo.id}</span></div></td>
<td height="20" bgcolor="#FFFFFF" class="STYLE19" align="center" style="padding-left:5px;"><?php echo str_repeat('-',$vo[level]*8);?>{$vo.username}</td>
<td height="20" bgcolor="#FFFFFF" class="STYLE6"><div align="center"><span class="STYLE19">{$vo.ip}</span></div></td>
<td height="20" bgcolor="#FFFFFF" class="STYLE6"><div align="center"><span class="STYLE19">{$vo.country}{$vo.area}</span></div></td>
<td height="20" bgcolor="#FFFFFF" class="STYLE6"><div align="center"><span class="STYLE19">{$vo.logintime|date='Y-m-d H:i:s',###}</span></div></td>
<td height="20" bgcolor="#FFFFFF">
<div align="center" class="STYLE21">
<a href="__CONTROLLER__/del/id/{$vo.id}" onclick="return confirm('您确定要删除该登陆日志吗?');">删除</a>
</div>
</td>
</tr>
</volist>
</table></td>
</tr>
<td height="20" valign="bottom">
<span class="STYLE1">当前登录用户:<?php echo I('session.username')?> </span>
<span class="STYLE1" style="margin-left: 2rem;">用户ip:<?php echo get_client_ip();?> </span>
<span class="STYLE1" style="margin-left: 2rem;">用户ip地址:<?php echo I('session.country')?> </span>
<span class="STYLE1"><?php echo I('session.area')?> </span>
</td>
注意:获取ip 定位 需要下载 IP地址库文件
IP地址库文件和IpLocation类库位于同一目录即可。