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

devtools/2024/10/11 3:58:58/

最近有个需求,笔记本在公司上网需要设置固定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/devtools/123967.html

相关文章

Biomamba求职| 国奖+4篇一作SCI

转眼间我也要参加秋招啦,认真的求职帖,各位老师/老板欢迎联系~其它需要求职的小伙伴也欢迎把简历发给我们,大家一起找工作。 一、基本信息 姓名:Biomamba 性别:男 出厂年份:1998 籍贯:浙江…

医疗革新:Spring Boot医院管理系统

1系统概述 1.1 研究背景 如今互联网高速发展,网络遍布全球,通过互联网发布的消息能快而方便的传播到世界每个角落,并且互联网上能传播的信息也很广,比如文字、图片、声音、视频等。从而,这种种好处使得互联网成了信息传…

构建高效在线教育平台:SpringBoot实践指南

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理微服务在线教育系统的相关信息成为必然。开…

C++类与对象深度解析(一):从抽象到实践的全面入门指南

文章目录C类与对象————详细入门指南前言1. 类的定义1.1 类定义的基本格式示例代码解释1.2 访问限定符示例代码解释1.3 类域示例代码解释1.4 成员命名规范常见的命名规定:实例:扩展:1.5 class与struct的默认访问权限示例:2. 类…

[单master节点k8s部署]32.ceph分布式存储(三)

基于ceph rbd生成pv 在集群中认证ceph 用下面代码生成ceph的secret .创建 ceph 的 secret,在 k8s 的控制节点操作: 回到 ceph 管理节点创建 pool 池: [rootmaster1-admin ~]# ceph osd pool create k8stest 56 pool k8stest created [rootm…

一个IP可以支持几种网络协议?

在计算机网络的世界中,IP地址(Internet Protocol Address)是用于标识网络设备的基本标识符。IP地址本身并不是一种网络协议,而是网络层协议中的关键组件,它通过不同的网络协议来完成数据传输。为了理解一个IP地址能够支…

Redis:string类型

Redis:string类型 string命令设置与读取SETGETMSETMGET 数字操作INCRINCRBYDECRDECRBYINCRBYFLOAT 字符串操作APPENDSTRLENGETRANGESETRANGE 内部编码intembstrraw 在Redis中,字符串string存储的是二进制,以byte为单位,输入的二进…

浅谈PyTorch中的DP和DDP

目录 1. 引言2. PyTorch 数据并行(Data Parallel, DP)2.1 DP 的优缺点2.2 DP 实现代码示例 3. PyTorch 分布式数据并行(Distributed Data Parallel, DDP)3.1 DDP 的优缺点3.2 分布式基本概念3.3 DDP 的应用流程3.5 DDP 实现代码示…