护网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()

相关推荐
故事和你911 分钟前
洛谷-【图论2-4】连通性问题2
开发语言·数据结构·c++·算法·动态规划·图论
Brilliantwxx2 分钟前
【C++】 二叉搜索树
开发语言·c++·算法
wj3055853788 小时前
课程 9:模型测试记录与 Prompt 策略
linux·人工智能·python·comfyui
为何创造硅基生物9 小时前
C语言 结构体内存对齐规则(通俗易懂版)
c语言·开发语言
吃好睡好便好9 小时前
在Matlab中绘制横直方图
开发语言·学习·算法·matlab
星寂樱易李9 小时前
iperf3 + Python-- 网络带宽、网速、网络稳定性
开发语言·网络·python
仰泳之鹅9 小时前
【C语言】自定义数据类型2——联合体与枚举
c语言·开发语言·算法
qingfeng154159 小时前
企业微信机器人开发:如何实现自动化与智能运营?
人工智能·python·机器人·自动化·企业微信
之歆10 小时前
DAY_12JavaScript DOM 完全指南(二):实战与性能篇
开发语言·前端·javascript·ecmascript