PHP MySQL统计各地区在线用户数_PHP+MySQL统计各地区在线用户数

当用户访问网站时,更新访问时间,在一定时间内不操作则认为用户不在线。本文中使用PHP记录访客IP,同时通过新浪IP地址接口,获取访客的地理位置(本例只记录省份),并写入mysql表中,即可统计一段时间内的访客总数,也可以查看访客的地区分布。

c87e449bee8283fc28f2a23d7592eea5.png

下载资源

下载积分:

50

积分

添加当前IP和更新访问时间 $ip = get_client_ip();

$time = time();

$num = mysql_num_rows(mysql_query("select id from online where ip='$ip'"));

if (!$num) { //若online表中没有我的ip,插入ip进行统计

if ($ip != '127.0.0.1') {

$api = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=$ip";

$json = file_get_contents($api);

$arr = json_decode($json, true);

$province = $arr['province'];

} else {

$province = "本地";

}

mysql_query("insert into online (ip,province,addtime) values ('$ip','$province','$time')");

} else { //否则更新我的ip时间

mysql_query("update online set addtime='$time' where ip='$ip'");

}

统计2小时内在线用户数 $t = $time - 3600 * 2; //2小时内的

$where = " WHERE addtime >= " . $t . "";

$totalOnline = mysql_num_rows(mysql_query("select id from online " . $where . ""));

获取用户ip列表 $sql = "select province,count(*) as total from online " . $where . " group by province order by total desc";

$list = array();

$query = mysql_query($sql);

$str = '';

while ($row = mysql_fetch_array($query)) {

$str .= "

" . $row['total'] . "" . $row['province'] . "";

}

最后显示在线人数$totalOnline,和地区统计在线人数列表$str

在线人数: <?php echo $totalOnline; ?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值