python统计根据条件筛选出符合条件的ip的次数
时间: 2024-03-08 22:49:51 浏览: 147
如果你想要筛选符合条件的IP地址并统计它们出现的次数,可以使用类似上面的代码,只不过在处理每个IP地址时需要增加一个条件判断。例如,假设你要统计出现在某个日期范围内的IP地址出现的次数,你可以这样修改代码:
```python
import re
# 定义日期范围
start_date = '2021-01-01'
end_date = '2021-01-31'
# 打开日志文件
with open('log.txt', 'r') as f:
# 定义一个字典,用来记录IP出现的次数
ip_dict = {}
# 逐行读取日志文件
for line in f:
# 使用正则表达式匹配IP地址和日期
match = re.search('(\d+\.\d+\.\d+\.\d+).*\[(\d{4}-\d{2}-\d{2})', line)
if match:
ip = match.group(1)
date = match.group(2)
# 如果IP已经在字典中,次数加1,否则添加到字典中
if start_date <= date <= end_date:
if ip in ip_dict:
ip_dict[ip] += 1
else:
ip_dict[ip] = 1
# 输出每个IP出现的次数
for ip, count in ip_dict.items():
print(f"{ip}出现了{count}次")
```
在上面的代码中,我们增加了一个条件判断,只有日期在指定的范围内的IP地址才会被统计。同时,我们还修改了正则表达式,匹配IP地址和日期。这样就可以筛选符合条件的IP地址并统计它们出现的次数了。
阅读全文