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

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

    # 获取网卡并设置ip
    def 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.

相关推荐
2603_9651481112 分钟前
家居百货蓝海:API挖掘高复购率生活小商品
大数据·服务器·人工智能·python·生活
CoreTK_EMC3 小时前
机器人信号线缆屏蔽:解决伺服干扰、通讯异常的工程落地思路
网络·机器人·芯通康·机器人信号线缆屏蔽·工业机器人线缆 emc·机器人接地屏蔽·ethercat 通讯干扰
阿童木写作3 小时前
跨境电商图片翻译工具推荐:批量图片翻译+视频字幕翻译+智能抠图
python·macos·音视频·xcode
cui_ruicheng4 小时前
LangChain 应用开发(十四):Agent 上下文与记忆机制
服务器·人工智能·python·langchain
circuitsosk4 小时前
任务规划器的三种范式对比:ReAct、Plan-and-Execute 与 Tree-of-Thought 在真实业务中的取舍
前端·javascript·python·react.js·llm·ai agent
张宇Joaquin4 小时前
鲲鹏统一并行加速库KUPL--众核并行能力介绍
java·开发语言·网络
shehuiyuelaiyuehao5 小时前
算法31,前缀和,可被k整除的子数组
数据结构·python·算法
kakakahahahaha5 小时前
【Windows】C盘低空间反复复发的排查与扩容边界
c语言·windows·电脑·笔记本电脑·内容运营·软件需求
宸津-代码粉碎机5 小时前
AI攻防战升级!基于Spring AI构建Java应用自动免疫安全体系
java·大数据·开发语言·人工智能·python·安全·spring
测试19985 小时前
如何用appium搭建Android自动化测试框架?
自动化测试·软件测试·python·测试工具·职场和发展·appium·测试用例