设置IP的python程序

来源:互联网 发布:阿里巴巴用什么数据库 编辑:程序博客网 时间:2024/06/05 19:06

        修改IP(有线)是件麻烦的事情,特别是抱着笔记本在不同局域网间来回走动。本文介绍修改IPPython3程序,并介绍些使用经验。代码如下(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指令进行设置。如果没有配置文件则设置为自动获取。

注意点:

  1. 程序依赖netsh指令,只能在Windows平台使用;
  2. 程序没有对名称(“本地连接”)做任何处理;
  3. 程序没有对错误进行检查;
  4. 可以通过快捷方式或者bat文件,将程序和配置文件组合起来,实现点击就可以切换;
  5. 修改IP需要管理员权限,可以定义快捷方式,在其“属性”->“高级”中选择“用管理员身份运行”,则运行快捷方式则会提示输入密码。