在需要频繁换IP地址的情况下,打开网络设置去修改比较慢,因此设计一个IP地址修改器,可以快速修改IP
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| import os import re
class IpManage: def __init__(self): self.ip_list = self.get_ip()
def set_ip(self, name, ip, mask, gateway): os.system(f"netsh interface ip set address name=\"{name}\" static {ip} {mask} {gateway}")
def set_dns(self, name, dns_primary, dns_secondary): os.system(f"netsh interface ip set dnsservers name=\"{name}\" static addr={dns_primary}") if dns_secondary: os.system(f"netsh interface ip add dnsservers name=\"{name}\" addr={dns_secondary} index=2")
def get_ip(self): result = os.popen('ipconfig') res = result.read().strip()
resultlist = re.findall('''(?<=以太网适配器 ).*?(?=:)|(?<=无线局域网适配器 ).*?(?=:)''', res) return resultlist
def get_adapter_name(self): print("请选择要配置的网络适配器(例如: 以太网):") for i, adapter in enumerate(self.ip_list, 1): print(f"{i}. {adapter}") choice = input("请输入选择的适配器编号: ") return self.ip_list[int(choice) - 1]
if __name__ == '__main__': im = IpManage() adapter_name = im.get_adapter_name()
ip_addr = input("请输入IP地址 (默认: 192.168.31.108): ") or "192.168.31.108" subnet_mask = input("请输入子网掩码 (默认: 255.255.255.0): ") or "255.255.255.0" gateway = input("请输入网关地址 (默认: 192.168.31.1): ") or "192.168.31.1" dns_primary = input("请输入首选DNS服务器地址 (默认: 192.168.31.1): ") or "192.168.31.1" dns_secondary = input("请输入备用DNS服务器地址 (默认: 留空可不设置): ")
im.set_ip(adapter_name, ip_addr, subnet_mask, gateway) im.set_dns(adapter_name, dns_primary, dns_secondary) print("IP和DNS设置成功") input("按任意键退出...")
|
效果
也可以使用pyinstaller将代码打包成exe文件,方便使用。
例如:
生成的exe文件在dist目录下。
如果有几个固定的IP需要修改,可以分别写成几个exe文件,这样只要用管理员权限运行exe文件即可快速修改!
注意
必须以管理员权限运行才能修改IP地址,否则即使没有提示权限不足也无法真正修改IP地址。