开源的网站统计太过复杂,免费的网站统计又不敢用,想弄个简单的网站IP统计工具。下面,写一个简单的IP统计工具,支持动态、静态、伪静态,文末附上懒人包下载。
写在前面
市面上的某网站统计,各种...暗箱操作,让站长们很是失望!自建网站统计很是安心。
功能介绍
实现IP统计,比如:今天IP、昨天IP、前天IP等,就统计三天的,你看是不是很简单啊!
当然了,觉得太过简单的,阔以看看《免费网站统计 - 免费的网站统计平台》
这个统计,是基于 ClassCMS 整合的,也阔以自建,ClassCMS 网站统计系统下载。
上面的网站统计我不用,但今天写这个,只统计三天IP的,我自己也在用并分享出来。
动态版
<?php error_reporting(0); header('Content-type:text/html;charset=utf-8'); date_default_timezone_set('Asia/Shanghai'); // 获取今天的日期 $daay = date('Y-m-d'); // 获取昨天的日期 $daby = date('Y-m-d', strtotime('-1 day')); // 获取前天的日期 $dacy = date('Y-m-d', strtotime('-2 days')); function CurIP() { $IsCDN = false; $IP = false; if (!empty($_SERVER["HTTP_CLIENT_IP"])) { $IP = trim($_SERVER["HTTP_CLIENT_IP"]); } if ($IsCDN && !empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $IPs = array_map("trim", explode(",", $_SERVER['HTTP_X_FORWARDED_FOR'])); if ($IP) { array_unshift($IPs, $IP); $IP = FALSE; } foreach ($IPs as $Key => $Value) { if (filter_var($Value, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE)) { $IP = $Value; break; } } } return htmlspecialchars($IP ? $IP : $_SERVER['REMOTE_ADDR']); } $UAG = isset($_SERVER['HTTP_USER_AGENT']) ? strtolower($_SERVER['HTTP_USER_AGENT']) : ''; if ($UAG) { $Spider = preg_match('/(compatible|spider|bot|Sogou|Google)/i', $UAG);/*1真蜘蛛*/ } else { $Spider = false;/*0假蜘蛛*/ } /* 写入访问日志 */ if ($Spider === 0){ if (!file_exists(dirname(__FILE__).'/ip/'.$daay.'/'.CurIP().'.txt')) { mkdir(dirname(__FILE__).'/ip', 0777, true); mkdir(dirname(__FILE__).'/ip/'.$daay.'/', 0777, true); $file = fopen(dirname(__FILE__).'/ip/'.$daay.'/'.CurIP().'.txt', 'w'); fwrite($file, $_SERVER['HTTP_USER_AGENT']); /*fwrite($file, 'ok');*/ fclose($file); } } /* 写入访问日志 */ ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>全民博客</title> </head> <body> <?php //仅限自己查看 或者...自行安排!!! if (stripos($_SERVER['HTTP_USER_AGENT'], '73.0.3683.75') !== false) { //参考教程:ZBlogPHP后台被恶意访问的解决办法 http://bbs.nidecms.com/t/197 function CDays($day) { $txtFiles = glob('ip/'.$day.'/*.txt'); return count($txtFiles); } $DaaNums = CDays($daay); $DabNums = CDays($daby); $DacNums = CDays($dacy); $DuiAums = $DaaNums - $DabNums; $DuiBums = $DaaNums - $DacNums; ?> <div style="font-size:15px;"> <a href="delete.php?le=delete"><span>今日IP:<?php echo ($DaaNums == 0) ? $DaaNums : '<font color="#f46">+'.$DaaNums.'</font>'; ?></a> <a href="delete.php?le=delete"><span>昨日IP:<?php echo $DabNums; ?><font color="#f46"><?php echo ($DuiAums >= 0) ? '+'.abs($DuiAums) : '-'.abs($DuiAums); ?></font></a> <a href="delete.php?le=delete"><span>前日IP:<?php echo $DacNums; ?><font color="#f46"><?php echo ($DuiBums >= 0) ? '+'.abs($DuiBums) : '-'.abs($DuiBums); ?></font></a> </div> <?php } ?> </body> </html>
实现今日IP、昨日IP、前日IP和一个删除日志文件。完整代码在文末懒人包里。
静态版
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>全民博客</title> </head> <script type="text/javascript" src="https://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script> <body> <!--站长统计代码--> <script type="text/javascript" data-url="/tongji.php"></script> <script>jQuery(function($) {$('script[data-url]').each(function() {var _this = $(this),url = _this.attr('data-url');_this.attr('src',url); });});</script> <!--调用统计代码--> <div id="tongji"></div> <script type="text/javascript"> $(document).ready(function() { $.get("/diao.php?le=yes", function(data) { $("#tongji").html(JSON.parse(data)); }) }); </script> </body> </html>
静态版的比较简单,一句话调用代码即可实现IP统计。完整代码在文末懒人包里。
懒人包下载
源码已发放,自行研究吧,好不好用?我不知道,但我自己在用...我觉得挺不错的啊!
+20 20 个回复 | 最后更新于 2025-01-22
登录后方可回帖