当前位置: 首页 > news >正文

长沙网站制作首页浙江网站建设平台

长沙网站制作首页,浙江网站建设平台,广州网络推广哪家好,软件公司做网站工作中调试设备需要经常修改电脑IP,非常麻烦,这里使用Pythontkinter做了一个IP修改工具 说明: 1.启动程序读取config.json文件2.如果没有该文件则创建,写入当前网卡信息3.通过配置信息进行网卡状态修改4.更新文件状态,删除或修…

工作中调试设备需要经常修改电脑IP,非常麻烦,这里使用Python+tkinter做了一个IP修改工具
在这里插入图片描述

说明:

  • 1.启动程序读取config.json文件
  • 2.如果没有该文件则创建,写入当前网卡信息
  • 3.通过配置信息进行网卡状态修改
  • 4.更新文件状态,删除或修改当前config.json即可

打包指令

pyinstaller -F -w --uac-admin -i .\img\network_web_icon.ico -n IPTool .\setip_ui.py

项目 Github地址

项目代码

# -*- coding: utf-8 -*-
import tkinter as tk
from tkinter import messagebox
from tkinter import ttk
import subprocess
import re
import os
import jsonclass NetAdapter:def __init__(self, lines):self.EnableDHCP = '是' in lines[0]self.IPAddr = lines[1].split(':')[1].strip()input_string = lines[2]pattern = r'掩码 (\d+\.\d+\.\d+\.\d+)'match = re.search(pattern, input_string)self.Mask = match.group(1)# 接口 "net1" 的配置# DHCP 已启用:                          是# IP 地址:                           192.168.1.3# 子网前缀:                        192.168.1.0/24 (掩码 255.255.255.0)# 默认网关:                         192.168.1.1# 网关跃点数:                       0# InterfaceMetric:                      35def EnableDHCPStr(self):return '动态IP' if self.EnableDHCP else '静态IP'class SetIPUI:def __init__(self, root):root.title("网卡设置工具")self.setmid(root)tk.Label(root, text="网卡类型").grid(row=0, padx='2px', pady='3px')self.configDic = self.initConfig()self.cmb = ttk.Combobox(root)self.cmb.grid(row=0, column=1, columnspan=1, padx='2px', pady='3px')self.cmb['values'] = list(self.configDic.keys())self.cmb.bind("<<ComboboxSelected>>", self.getAdapterInfo)rowIndex = 1self.entry_vars = []for title in ['类型', 'ip', '子网掩码']:tk.Label(root, text=title).grid(row=rowIndex, column=0, padx='2px', pady='3px')entry_var = tk.StringVar()entry = tk.Entry(root, textvariable=entry_var)entry.grid(row=rowIndex, column=1, padx='2px', pady='3px')self.entry_vars.append(entry_var)rowIndex += 1tk.Button(root, text="动态ip", width=10, command=self.setDynamicIp).grid(row=rowIndex, column=0, columnspan=1,sticky="w", padx=10, pady=5)tk.Button(root, text="静态ip", width=10, command=self.setStaticIp).grid(row=rowIndex, column=1, columnspan=1,sticky="e", padx=10, pady=5)text=tk.Text(root,height=20,width=40)text.grid(row=0,column=2,rowspan=rowIndex+1,columnspan=3,sticky="e", padx=10, pady=5)self.setExplain(text)def setExplain(self,text:tk.Text):context="说明:\n" \"1.启动程序读取config.json文件\n" \"2.如果没有该文件则创建,写入当前网卡信息\n" \"3.通过配置信息进行网卡状态修改\n" \"4.更新文件状态,删除或修改当前config.json即可"text.insert('1.0',context)def setmid(self,root):window_width = 580window_height = 280screen_width = root.winfo_screenwidth()screen_height = root.winfo_screenheight()x = (screen_width - window_width) // 2y = (screen_height - window_height) // 2root.geometry(f"{window_width}x{window_height}+{x}+{y}")def initConfig(self) -> dict:fn = 'config.json'if not os.path.exists(fn):self.createConfig()with open(fn, "r",encoding='utf-8') as json_file:data = json.load(json_file)return datadef createConfig(self):names = self.getAllNames()data = {}for name in names:myAda = self.getAdapterInfoImpl(name)if myAda is None:continuedata[name] = {'dhcp': myAda.EnableDHCP, 'ip': myAda.IPAddr, 'mask': myAda.Mask}# 写回JSON文件fn = 'config.json'with open(fn, "w",encoding='utf-8') as json_file:json.dump(data, json_file, indent=4,ensure_ascii=False)def getAllNames(self):command = "netsh interface show interface"output = subprocess.check_output(command, shell=True, text=True)adapters = []lines = output.splitlines()lines = [l for l in lines if "连接" in l]for line in lines:  # 从第四行开始解析parts = line.split('   ')if len(parts) > 1:adapter_name = parts[-1]adapters.append(adapter_name)print(adapter_name)return adaptersdef getAdapterInfo(self, event):key=self.cmb.get()adapter = self.configDic[key]dhcp=self.getAdapterInfoImpl(key).EnableDHCPStr()if adapter is None:messagebox.showerror("错误", f"{self.cmb.get()}未连接或未启用")returnself.entry_vars[0].set(dhcp)self.entry_vars[1].set(adapter['ip'])self.entry_vars[2].set(adapter['mask'])def getAdapterInfoImpl(self, adapter):command = f"netsh interface ip show address \"{adapter}\""output = subprocess.check_output(command, shell=True, text=True)# 解析输出以获取 IP 地址状态lines = output.splitlines()if (len(lines) <= 5):returnmyAda = NetAdapter(lines[2:])return myAdadef setDynamicIp(self):adapter = self.cmb.get()  # 网卡名称# 使用netsh设置为动态IP地址(DHCP)try:ipCmd = f"netsh interface ipv4 set address name=\"{adapter}\" source=dhcp"subprocess.run(ipCmd, shell=True, check=True, encoding='utf-8')subprocess.run(f"netsh interface ipv4 set dns name=\"{adapter}\" source=dhcp", shell=True, check=True,encoding='utf-8')messagebox.showinfo("完成", "已设置为动态IP地址(DHCP)")except subprocess.CalledProcessError as err:messagebox.showerror("错误", err.output)def setStaticIp(self):interface_name = self.cmb.get()  # 网卡名称# 请根据你的网络配置进行适当的替换ip_address = self.entry_vars[1].get()subnet_mask = self.entry_vars[2].get()try:command = f"netsh interface ipv4 set address name=\"{interface_name}\" static {ip_address} {subnet_mask}"# 使用netsh设置静态IP地址subprocess.run(command, shell=True, check=True)messagebox.showinfo("完成", "已设置为静态IP地址")except subprocess.CalledProcessError as err:messagebox.showerror("错误", err.output)if __name__ == '__main__':# pyinstaller -F -w --uac-admin -i .\img\network_web_icon.ico -n IPTool .\setip_ui.pyroot = tk.Tk()myUI = SetIPUI(root)root.mainloop()
http://www.wangmingla.cn/news/25259.html

相关文章:

  • 做淘客网站去哪里购买空间营销网站建设门户
  • 怎样做产品推广网站排名优化公司
  • 武汉市平台公司优化设计六年级下册语文答案
  • 装修公司怎么做免费网站友情链接买卖平台
  • 成都新线加网站建设江苏网站建设推广
  • 网站建设的策划文案免费b站推广网站2022
  • 政府网站建设整改情况seo怎么学
  • 做网站的投入视频剪辑培训机构哪个好
  • 网站建设具体运算随州seo
  • 郑州网站制作-中国互联怎样留别人电话在广告上
  • 电影网站建设之苹果cms程序网站注册域名
  • 房山做网站公司随州今日头条新闻
  • 合肥动态网站制作建设创建网址链接
  • 甘肃省引洮工程建设管理局官方网站网站关键字优化
  • 用php写的网站宁波seo优化定制
  • 山东企业网站建设公司网站优化要多少钱
  • wordpress模板 简约外贸网站推广seo
  • 比较有名的设计网站seo优化裤子关键词
  • 网站的做网站公司西安网站推广排名
  • 沈阳市建设委会网站制作网站教程
  • 外贸网站 php推广任务发布平台app
  • 找人做设计的网站潍坊网站关键词推广
  • 做网站需要源码吗域名注册查询阿里云
  • 服务器网站慢的原因公司seo营销
  • 济源网站优化上海站优云网络科技有限公司
  • 成都网站建设sm1010五八精准恶意点击软件
  • 信誉好的购物网站建设seo外链发布技巧
  • 蓝翔老师做的网站国内最近发生的重大新闻
  • 网站源码 手机 微信如何做好网络营销推广
  • 软件开发报价表网站优化哪家好