设置IP的python程序

本文提供了一个Python脚本,可在Windows平台上自动修改网络设置中的IP地址和DNS。此脚本适用于经常需要更换局域网的用户,能够通过命令行参数接收配置文件路径,从而简化网络配置过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        修改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需要管理员权限,可以定义快捷方式,在其“属性”->“高级”中选择“用管理员身份运行”,则运行快捷方式则会提示输入密码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值