python统计日志ip访问数的方法
作者:jiedushi 时间:2023-07-05 18:57:20
本文实例讲述了python统计日志ip访问数的方法。分享给大家供大家参考。具体如下:
import re
f=open("/tmp/a.log","r")
arr={}
lines = f.readlines()
for line in lines:
ipaddress=re.compile(r'^#(((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?))')
match=ipaddress.match(line)
if match:
ip = match.group(1)
if(arr.has_key(ip)):
arr[ip]+=1
else:
arr.setdefault(ip,1)
f.close()
for key in arr:
print key+"->"+str(arr[key])
日志格式为:
#111.172.249.84 - - [12/Dec/2011:05:33:36 +0800] "GET /images/i/goTop.png HTTP/1.0" 200 486 "http://wh.xxxx.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)"
#111.172.249.84 - - [12/Dec/2011:05:33:36 +0800] "GET /images/i/goTop.png HTTP/1.0" 200 486 "http://wh.xxxx.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)"
#111.172.249.85 - - [12/Dec/2011:05:33:36 +0800] "GET /images/i/goTop.png HTTP/1.0" 200 486 "http://wh.xxxx.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)"
#111.172.249.86 - - [12/Dec/2011:05:33:36 +0800] "GET /images/i/goTop.png HTTP/1.0" 200 486 "http://wh.xxxx.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)"
输出结果:
111.172.249.86->1
111.172.249.84->2
111.172.249.85->1
注释:python字段的setdefault用法为获取信息,如果获取不到的时候就按照他的参数设置该值
>>> a={}
>>> a['key']='123'
>>> print (a)
{'key': '123'}
>>> print (a.setdefault('key','456'))
#显示a这个字典的'key'值的内容,因为字典有,所以不会去设置它
123
>>> print (a.setdefault('key1','456'))
#显示a这个字典的'key1'值的内容,因为字典没有,所以设置为456了
456
>>> a
{'key1': '456', 'key': '123'}
希望本文所述对大家的Python程序设计有所帮助。
标签:python,日志,ip
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python内置的HTTP协议服务器SimpleHTTPServer使用指南
2021-11-22 08:11:12
Python正则表达式匹配和提取IP地址
2023-04-01 07:25:21
Mysql数据表中的蠕虫复制使用方法
2024-01-24 15:06:06
![](https://img.aspxhome.com/file/2023/9/114949_0s.png)
Django如何实现RBAC权限管理
2021-05-20 19:14:27
![](https://img.aspxhome.com/file/2023/1/103361_0s.png)
python中关于日期时间处理的问答集锦
2023-08-16 08:18:48
JS高阶函数原理与用法实例分析
2024-05-09 10:36:21
python文本进度条实例
2023-05-15 17:18:16
以SortedList为例详解Python的defaultdict对象使用自定义类型的方法
2022-04-07 02:32:28
一个不错网速测试代码
2008-07-20 13:41:00
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
2023-01-11 15:30:37
![](https://img.aspxhome.com/file/2023/4/65424_0s.jpg)
python采用django框架实现支付宝即时到帐接口
2023-07-16 00:15:33
Python自动化办公之手机号提取
2022-12-26 11:31:46
![](https://img.aspxhome.com/file/2023/4/133184_0s.gif)
python读取配置文件方式(ini、yaml、xml)
2022-10-12 05:07:29
MySQL日志专项之redo log和undo log介绍
2024-01-23 03:33:16
![](https://img.aspxhome.com/file/2023/7/68597_0s.png)
Windows系统下mysql5.7.21安装详细教程
2024-01-21 17:26:38
![](https://img.aspxhome.com/file/2023/9/124509_0s.jpg)
Pycharm直接使用远程服务器代码并调试的解决方法
2021-05-13 10:21:03
vue关于eslint空格缩进等的报错问题及解决
2024-05-10 14:09:26
![](https://img.aspxhome.com/file/2023/6/126576_0s.png)
oracle 性能优化建议小结
2024-01-19 10:50:53
在python中利用dict转json按输入顺序输出内容方式
2021-10-26 15:17:23
备战618!用Python脚本帮你实现淘宝秒杀
2022-05-15 04:43:40
![](https://img.aspxhome.com/file/2023/4/78674_0s.png)