用python写一份简单的可视化界面的端口扫描
时间: 2024-10-14 20:05:08 浏览: 29
在Python中,我们可以使用一些库如`tkinter`创建一个基本的图形用户界面(GUI),结合`socket`库来进行端口扫描。下面是一个简单示例,展示如何编写一个基本的命令行风格的UI来显示扫描结果:
```python
import tkinter as tk
import socket
def scan_port(host, port):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
result = sock.connect_ex((host, port))
if result == 0:
status_label.config(text=f"Port {port} is open")
else:
status_label.config(text=f"Port {port} is closed")
except Exception as e:
status_label.config(text=str(e))
finally:
sock.close()
# 创建窗口
root = tk.Tk()
root.title("Port Scanner")
# 显示输入框和扫描按钮
host_entry = tk.Entry(root)
host_entry.pack(pady=5)
scan_button = tk.Button(root, text="Scan", command=lambda: scan_port(host_entry.get(), int(port_var.get())))
scan_button.pack(pady=5)
# 显示结果标签
status_label = tk.Label(root, text="")
status_label.pack()
# 设置默认端口变量
port_var = tk.StringVar()
default_port = 80
port_entry = tk.Entry(root, textvariable=port_var, width=4)
port_entry.insert(0, str(default_port))
port_entry.pack()
root.mainloop()
```
这个程序会在用户输入主机名和选择端口号后尝试连接到该端口,并在结果标签上显示结果。注意这只是一个基础版本,实际应用可能需要更复杂的错误处理和用户体验。
阅读全文