最近有个需求,笔记本在公司上网需要设置固定ip,拿回家之后又要设置自动获取ip,有些美女同事根本就不知道怎么设置,所以我打算开发一个一键设置的小软件供大家使用。
但是不会c++,也不会c#,更加不会vb,不可能使用Java开发桌面吧,思来想去,只能使用python了,因为python无所不能嘛,但是打包之后,这个小软件的体积居然达到了40M,实在是不忍心啊。
闲言少叙,开始编码。
先看结果
总体来说,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.