python写的window小工具-一键设置ip自动获取ip

embedded/2024/10/11 4:26:00/

最近有个需求,笔记本在公司上网需要设置固定ip,拿回家之后又要设置自动获取ip,有些美女同事根本就不知道怎么设置,所以我打算开发一个一键设置的小软件供大家使用。

但是不会c++,也不会c#,更加不会vb,不可能使用Java开发桌面吧,思来想去,只能使用python了,因为python无所不能嘛,但是打包之后,这个小软件的体积居然达到了40M,实在是不忍心啊。

闲言少叙,开始编码。

先看结果

总体来说,python写代码真的非常简单,基本上一个小时就可以完成编码和测试。

下面把源码发布,大家自行复制下载。

python">
import subprocess
import sys
from PySide6.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QLineEdit# 新建一个类
class net_setting:def __init__(self):super().__init__()# 设置IP和网关self.ip_address = '172.16.94.37'self.netmask = '255.255.255.0'self.gateway = '172.16.94.254'self.card_name = "WLAN"# 获取网卡并设置ipdef get_wireless_card2(self):# 查看所有的无线网卡command = "netsh interface ip show config"output = subprocess.check_output(command, shell=True).decode('gbk')lines = output.split('\n')# 查找无线网卡for line in lines:if 'WLAN' in line or '无线' in line:card_name =self.getWords(line)print("设置的ip是:")print(card_name+" === "+self.ip_address+" === "+self.netmask+" === "+self.gateway)command = f'netsh interface ip set address "{card_name}" static {self.ip_address} {self.netmask} {self.gateway}'subprocess.check_output(command, shell=True)print("设置成功!")# 自动配置无线网卡def get_wireless_card_auto(self):# 查看所有的无线网卡command = "netsh interface ip show config"output = subprocess.check_output(command, shell=True).decode('gbk')lines = output.split('\n')# 查找无线网卡for line in lines:# print(line)if 'WLAN' in line or '无线' in line:card_name =self.getWords(line)print(card_name)command = f'netsh interface ip set address "{card_name}" dhcp 'subprocess.check_output(command, shell=True)print("设置成功!")# 取双引号中间的字符串def getWords(self,line):words = line.split('"')# 使用 join() 方法将分割后的子字符串重新连接成一个字符串result = '"'.join(words[1:-1])print(result)  # 输出return result# 继承net_setting
class MyApp(QWidget,net_setting):def __init__(self):super().__init__()self.initUI()def initUI(self):self.setWindowTitle('XX科技-配置IP无线网卡1.0')self.setGeometry(300, 300, 350, 150)# 添加标签self.ip_txt = QLineEdit(self.ip_address, self)self.ip_txt.move(20, 20)self.netmask_txt = QLineEdit(self.netmask, self)self.netmask_txt.move(160, 20)self.gateway_txt = QLineEdit(self.gateway, self)self.gateway_txt.move(20, 50)self.card_name_txt = QLineEdit(self.card_name, self)self.card_name_txt.move(160, 50)self.card_name_txt.setDisabled(True)# 添加按钮self.btn = QPushButton('配置ip', self)self.btn.move(20, 90)# 添加按钮self.man_btn = QPushButton('自动获取', self)self.man_btn.move(160, 90)self.btn.clicked.connect(self.on_click)self.man_btn.clicked.connect(self.auto_config_ip)self.label = QLabel("请点击相应的按钮进行操作....", self)# 设置文本颜色为红色self.label.setStyleSheet("color : red;")self.label.move(20,120)def on_click(self):self.card_name = self.card_name_txt.text()self.ip_address = self.ip_txt.text()self.netmask=self.netmask_txt.text()self.gateway = self.gateway_txt.text()print(self.card_name+" === "+self.ip_address+" === "+self.netmask+" === "+self.gateway)self.get_wireless_card2()self.label.setText('手动IP配置成功!!!')def auto_config_ip(self):self.get_wireless_card_auto()print('自动获取ip成功')self.label.setText('自动IP配置成功!!!')if __name__ == '__main__':app = QApplication(sys.argv)ex = MyApp()ex.show()sys.exit(app.exec())

使用时注意,把IP改成自己设置的IP.


http://www.ppmy.cn/embedded/125701.html

相关文章

嵌入式开发:STM32 硬件 CRC 使用

测试平台:STM32G474系列 STM32硬件的CRC不占用MCU的资源,计算速度快。由于硬件CRC需要配置一些选项,配置不对就会导致计算结果错误,导致使用上没有软件计算CRC方便。但硬件CRC更快的速度在一些有时间资源要求的场合还是非…

Django-rest-framework(DRF)怎么使用redis

一、redis作用 Redis,作为一款开源的内存数据结构存储系统,它可以用作数据库、缓存和消息中间件。以下是Redis的主要作用: 1、高速缓存 Redis能够极大地加速数据的读取速度,因为它将数据存储在内存中通过缓存热点数据&#xff…

运维工具之ansible

Ansible 1.什么是ansible? ​ ansible是基于ssh架构的自动化运维工具,由python语言实现,通过ansible可以远程批量部署等。 2.部署前提 ​ 控制端需要安装ansible,被控制端要开启ssh服务,并允许远程登录,被管理主机需要安装py…

喜讯!迈威通信TSN产品通过“时间敏感网络(TSN)产业链名录计划”评测,各项指标名列前茅

TSN技术,作为推动企业网络化与智能化转型的关键力量,已成为工业网络迈向下一代演进的共识方向,正加速重构工业网络的技术架构与产业生态。为响应这一趋势,工业互联网产业联盟携手中国信息通信研究院及50余家产学研用单位&#xff…

Qt QPushButton clicked信号浅析

前言 Qt 的 QPushButton clicked 信号原型: void clicked(bool checked false);通常,使用 Qt 的 QPushButton clicked 点击信号时,会以如下方式使用: connect(ui->pushButton, &QPushButton::clicked, this, [](){qDeb…

影视cms泛目录用什么程序?苹果cms二次开发泛目录插件

影视CMS泛目录一般使用的程序有很多种,(maccmscn)以下是其中几种常见的程序: WordPress:WordPress是一个非常流行的开源内容管理系统,可以通过安装一些插件来实现影视CMS泛目录功能。其中,一款常…

R包:APAlyzer从RNA-seq数据计算APA表达丰度

文章目录 介绍教程实战案例数据脚本运行 介绍 今天安利APAlyzer工具,它是通过RNA-seq数据获取3′UTR APA, intronic APA等表达谱的R包。 APAlyzer将bam文件比对到PolyA-DB数据库识别APA。 Most eukaryotic genes produce alternative polyadenylation (APA) isofo…

YOLOv10改进,YOLOv10添加CA注意力机制,二次创新C2f结构,助力涨点

改进前训练结果: 二次创新C2f结构训练结果: 摘要 在本文中,提出了一种新的移动网络注意力机制,将位置信息嵌入到信道注意力中称之为“协调注意力”。与渠道关注不同通过 2D 全局池将特征张量转换为单个特征向量,坐标注意力因子将通道注意力转化为两个 1D 特征编码过程…