修改IP(有线)是件麻烦的事情,特别是抱着笔记本在不同局域网间来回走动。本文介绍修改IP的Python3程序,并介绍些使用经验。代码如下(setip.py):
'''使用Windows的netsh命令进行网络设置
setip.py [config]
'''
import sys
import os
def setDns(config):
'''config = (name,dns)'''
if config[1]:
cmd = 'netsh interface ip set dns name=%s'\
' source=static %s primary' % config
else:
cmd = 'netsh interface ip set dns name=%s source=dhcp' % config[0]
os.system(cmd)
def setIp(config):
'''config = (name,ip,mark,gateway)'''
if config[1]:
cmd = 'netsh interface ip set address name=%s'\
' source=static %s %s %s 1' % config
else:
cmd = 'netsh interface ip set dns name=%s source=dhcp' % config[0]
os.system(cmd)
def setConfig(config):
setIp(config[0:4]);
setDns((config[0], config[4]))
def loadConfig(filename):
with open(filename) as f:
name = "本地连接"
ip = f.readline().strip()
mark = f.readline().strip()
gateway = f.readline().strip()
dns = f.readline().strip()
return (name, ip, mark, gateway, dns)
if __name__ == "__main__":
if len(sys.argv) > 1:
ipConfig = loadConfig(sys.argv[1])
else:
ipConfig = ("本地连接", "", "", "", "")
setConfig(ipConfig)
os.system("pause")
程序带命令行参数运行,参数为配置文件。程序从配置文件中读取设置,利用netsh指令进行设置。如果没有配置文件则设置为自动获取。
注意点:
- 程序依赖netsh指令,只能在Windows平台使用;
- 程序没有对名称(“本地连接”)做任何处理;
- 程序没有对错误进行检查;
- 可以通过快捷方式或者bat文件,将程序和配置文件组合起来,实现点击就可以切换;
- 修改IP需要管理员权限,可以定义快捷方式,在其“属性”->“高级”中选择“用管理员身份运行”,则运行快捷方式则会提示输入密码。