用python实现使用gui界面更改本机ip地址
这里提供一个简单的Python脚本,使用Tkinter库实现GUI界面更改本机IP地址:
import tkinter as tk
import subprocess
class App:
def __init__(self, master):
self.master = master
master.title("更改IP地址")
# IP地址标签和输入框
self.ip_label = tk.Label(master, text="IP地址:")
self.ip_label.grid(row=0, column=0)
self.ip_entry = tk.Entry(master)
self.ip_entry.grid(row=0, column=1)
# 子网掩码标签和输入框
self.mask_label = tk.Label(master, text="子网掩码:")
self.mask_label.grid(row=1, column=0)
self.mask_entry = tk.Entry(master)
self.mask_entry.grid(row=1, column=1)
# 网关标签和输入框
self.gateway_label = tk.Label(master, text="网关:")
self.gateway_label.grid(row=2, column=0)
self.gateway_entry = tk.Entry(master)
self.gateway_entry.grid(row=2, column=1)
# DNS标签和输入框
self.dns_label = tk.Label(master, text="DNS:")
self.dns_label.grid(row=3, column=0)
self.dns_entry = tk.Entry(master)
self.dns_entry.grid(row=3, column=1)
# 应用按钮
self.apply_button = tk.Button(master, text="应用", command=self.apply_ip)
self.apply_button.grid(row=4, column=0)
# 重置按钮
self.reset_button = tk.Button(master, text="重置", command=self.reset_ip)
self.reset_button.grid(row=4, column=1)
def apply_ip(self):
# 获取输入框的值
ip = self.ip_entry.get()
mask = self.mask_entry.get()
gateway = self.gateway_entry.get()
dns = self.dns_entry.get()
# 使用subprocess模块调用命令行更改IP地址
subprocess.call(['netsh', 'interface', 'ip', 'set', 'address', 'name="本地连接"', 'source=static', 'addr=' + ip, 'mask=' + mask, 'gateway=' + gateway])
subprocess.call(['netsh', 'interface', 'ip', 'set', 'dns', 'name="本地连接"', 'source=static', 'addr=' + dns])
# 弹出提示框
tk.messagebox.showinfo("提示", "IP地址已更改!")
def reset_ip(self):
# 使用subprocess模块调用命令行重置IP地址
subprocess.call(['netsh', 'interface', 'ip', 'set', 'address', 'name="本地连接"', 'source=dhcp'])
subprocess.call(['netsh', 'interface', 'ip', 'set', 'dns', 'name="本地连接"', 'source=dhcp'])
# 弹出提示框
tk.messagebox.showinfo("提示", "IP地址已重置!")
root = tk.Tk()
app = App(root)
root.mainloop()
说明:
- 使用Tkinter库创建GUI界面,包括IP地址、子网掩码、网关和DNS的输入框和应用、重置按钮。
- 应用按钮点击后,获取输入框的值,使用subprocess模块调用命令行更改IP地址和DNS,弹出提示框。
- 重置按钮点击后,使用subprocess模块调用命令行重置IP地址和DNS,弹出提示框。
原文地址: https://www.cveoy.top/t/topic/b22M 著作权归作者所有。请勿转载和采集!