forked from unclemcz/ban-pcdn-ip
-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.py
38 lines (32 loc) · 1.62 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 对ipdb.txt的内容进行去重和排序,并输出到ipdb.txt中
# 将ipdb.txt备份为ipdb_日期_时间.txt 格式
import datetime
def main(filename='ipdb.txt'):
date = datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S')
with open(filename, 'r') as f:
lines = f.readlines()
print(f"{filename.split('.')[0]}_{date}.txt")
with open(f"{filename.split('.')[0]}_{date}.txt", 'w') as f:
f.write(''.join(lines))
print('备份完成!')
with open(filename, 'r') as f:
# 读取内容,并将每行的数据进行排序
lines = f.readlines()
lines_without_newlines = [line.strip() for line in lines]
# 对lines_without_newlines进行去重
lines_without_newlines = list(set(lines_without_newlines))
# 剔除lines_without_newlines中空的元素和#开头的元素
lines_without_newlines = [line for line in lines_without_newlines if line and not line.startswith('#')]
# 将ip清单中的每个ip地址按照点分十进制进行排序
lines_without_newlines.sort(key=lambda x: tuple(map(int, x.split('/')[0].split('.'))))
# 在lines_without_newlines开头插入新元素
lines_without_newlines.insert(0, '# IP段清单')
print(lines_without_newlines)
# 打印lines_without_newlines的长度
print(len(lines_without_newlines))
# 将排序后的内容写入文件,要求每个元素一行
with open(filename, 'w') as f:
f.write('\n'.join(lines_without_newlines))
print('排序完成,更新完成!')
if __name__ == '__main__':
main()