护网IP去重,去白名单

import csv

from tkinter import *

from tkinter import ttk

from tkinter.messagebox import showinfo, askyesno

从文件中读取IP列表并查询

def read_ip_list():

ip_list = []

with open('ip_list.txt', 'r') as file:

for line in file:

ip = line.strip()

if not search_ip(ip):

ip_list.append(ip)

print(ip)

store_ip_list(ip_list)

showinfo("完成", "成功处理IP列表")

查询IP是否存在于库中

def search_ip(ip):

with open('ip_database.csv', 'r') as file:

reader = csv.reader(file)

for row in reader:

if row[0] == ip:

return True

return False

存储IP列表到库中

def store_ip_list(ip_list):

with open('ip_database.csv', 'a', newline='') as file:

writer = csv.writer(file)

for ip in ip_list:

writer.writerow([ip])

单个IP查询

def search_single_ip():

ip = entry.get()

if search_ip(ip):

showinfo("Result", f"IP {ip} exists in the database")

else:

showinfo("Result", f"IP {ip} does not exist in the database")

删除单个IP

def delete_single_ip():

ip = entry.get()

if search_ip(ip):

confirmation = askyesno("Confirmation", f"Are you sure you want to delete IP {ip}?")

if confirmation:

with open('ip_database.csv', 'r') as file:

lines = file.readlines()

with open('ip_database.csv', 'w') as file:

for line in lines:

if line.strip() != ip:

file.write(line)

showinfo("Success", f"IP {ip} has been deleted from the database")

else:

showinfo("Error", f"IP {ip} does not exist in the database")

创建图形化界面

window = Tk()

window.title("IP去重工具")

window.geometry("500x400")

创建标题标签

title_label = ttk.Label(window, text="IP去重工具", font=("Helvetica", 16))

title_label.pack(pady=10)

创建按钮框架

button_frame = Frame(window)

button_frame.pack(pady=10)

read_button = ttk.Button(button_frame, text="读取IP列表", command=read_ip_list)

read_button.grid(row=0, column=1, padx=5)

创建输入框和按钮框架

input_frame = Frame(window)

input_frame.pack(pady=10)

entry = ttk.Entry(input_frame)

entry.grid(row=0, column=0, padx=5)

search_button = ttk.Button(input_frame, text="单个查询IP", command=search_single_ip)

search_button.grid(row=0, column=1, padx=5)

delete_button = ttk.Button(input_frame, text="删除单个IP", command=delete_single_ip)

delete_button.grid(row=0, column=2, padx=5)

创建状态标签

status_label = ttk.Label(window, text="")

status_label.pack(pady=10)

window.mainloop()

相关推荐
能工智人小辰4 分钟前
二刷 苍穹外卖day10(含bug修改)
java·开发语言
DKPT5 分钟前
Java设计模式之结构型模式(外观模式)介绍与说明
java·开发语言·笔记·学习·设计模式
江太翁7 分钟前
Pytorch torch
人工智能·pytorch·python
先做个垃圾出来………25 分钟前
SQL的底层逻辑解析
数据库·sql
网安INF27 分钟前
深度学习中的逻辑回归:从原理到Python实现
人工智能·python·深度学习·算法·逻辑回归
LL.。28 分钟前
同步回调和异步回调
开发语言·前端·javascript
青苔猿猿29 分钟前
(5)aconda之.condarc文件配置
python·镜像源·.condarc文件
ningdisheng32 分钟前
Python用图片生成banner.txt文件
python
码不停蹄的玄黓38 分钟前
深入拆解MySQL InnoDB可重复读(RR)隔离级别:MVCC+临键锁如何「锁」住一致性?
数据库·mysql·可重复读
0wioiw040 分钟前
Python基础(吃洋葱小游戏)
开发语言·python·pygame