python 修改本地网络配置的方法


Posted in Python onAugust 14, 2019

本文主要说一下怎么使用Python来修改本地的ip和dns等,因为有本地的ip和dns都是随机获取的,有些时候不是很方便,需要修改,我就稍微的封装了一下,但是随机ip和网关、子网掩码等我都没有设置为参数,因为经常用也懒得改了,可以自己去修改一下。

测试的时候,在win8.1上面需要用管理员身份才能执行,win7似乎是不需要管理员身份的。

使用的Python库是WMI,这个是默认安装了的。如果没有去网上下载即可。

该说的都在注释里,就直接上代码了。

# -*- coding: utf-8 -*-
import os
import random
import re
from time import sleep
from wmi import WMI

#随机修改指定ip段的本机ip
class updateIP:
  def __init__(self):
    self.wmiService = WMI()
    #获取到本地有网卡信息
    self.colNicConfigs = self.wmiService.Win32_NetworkAdapterConfiguration(IPEnabled = True)
    #print self.colNicConfigs[0]
  def getAdapter(self):
    flag = 0
    #遍历所有网卡,找到要修改的那个,这里我是用原ip的第一段正则出来的
    for obj in self.colNicConfigs:
      ip = re.findall("10.\d+.\d+.\d+", obj.IPAddress[0])
      if len(ip) > 0:
        return flag
      else:
        flag = flag+1
  def runSet(self):
    adapter = self.colNicConfigs[self.getAdapter()]
    '''
    #检测ip是否在线,不可用,需登录
    while True:
      ip2 = random.choice(['216', '217'])
      ip3 = random.randint(1, 254)
      ip4 = random.randint(1, 254)
      newIP = '10.%s.%s.%s' % (ip2, ip3, ip4)
      if self.pingIP(newIP):
        break
    '''
    #随机选择了ip的第二段
    ip2 = random.choice(['216', '217'])
    ip3 = random.randint(1, 254)  #随机生成第三段和第二段的值
    ip4 = random.randint(1, 254)
    newIP = '10.%s.%s.%s' % (ip2, ip3, ip4)
    arrIPAddresses = [newIP]  #设置新的ip
    arrSubnetMasks = ['255.248.0.0']  #子网掩码
    arrDefaultGateways = ['10.223.255.254'] #网关
    arrGatewayCostMetrics = [1]   #这里要设置成1,代表非自动选择
    arrDNSServers = ['211.137.191.26']   #dns服务器
    #开始执行修改ip、子网掩码、网关
    ipRes = adapter.EnableStatic(IPAddress = arrIPAddresses, SubnetMask = arrSubnetMasks)
    if ipRes[0] == 0:
      print u'\ttip:设置IP成功'
      print u'\t当前ip:%s' % newIP
    else:
      if ipRes[0] == 1:
        print u'\ttip:设置IP成功,需要重启计算机!'
      else:
        print u'\ttip:修改IP失败: IP设置发生错误'
        return False
    #开始执行修改dns
    wayRes=adapter.SetGateways(DefaultIPGateway = arrDefaultGateways, GatewayCostMetric=arrGatewayCostMetrics)
    if wayRes[0] == 0:
      print u'\ttip:设置网关成功'
    else:
      print u'\ttip:修改网关失败: 网关设置发生错误'
      return False
    dnsRes = adapter.SetDNSServerSearchOrder(DNSServerSearchOrder=arrDNSServers)
    if dnsRes[0] == 0:
      print u'\ttip:设置DNS成功,等待3秒刷新缓存'
      sleep(3)
      #刷新DNS缓存使DNS生效
      os.system('ipconfig /flushdns')
    else:
      print u'\ttip:修改DNS失败: DNS设置发生错误'
      return False
'''
  //ping某ip看是否可以通
  def pingIP(self, ip):
    res = os.popen('ping -n 2 -w 1 %s' % ip).read() #内容返回到res
    res = res.decode('gbk')
    if u'请求超时' in res:     #注意乱码编码问题
       return False
    else:
      return True
'''
if __name__ == '__main__':
  update = updateIP()
  update.runSet()
  input()

以上这篇python 修改本地网络配置的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
下载安装setuptool和pip linux安装pip    
Jan 24 Python
解析Python中的异常处理
Apr 28 Python
python下如何查询CS反恐精英的服务器信息
Jan 17 Python
Python 基础教程之闭包的使用方法
Sep 29 Python
目前最全的python的就业方向
Jun 05 Python
对Tensorflow中的矩阵运算函数详解
Jul 27 Python
Python利用itchat库向好友或者公众号发消息的实例
Feb 21 Python
对tensorflow中cifar-10文档的Read操作详解
Feb 10 Python
python shell命令行中import多层目录下的模块操作
Mar 09 Python
Python如何telnet到网络设备
Feb 18 Python
Python实现归一化算法详情
Mar 18 Python
Pandas数据结构之Series的使用
Mar 31 Python
python django 原生sql 获取数据的例子
Aug 14 #Python
django 连接数据库 sqlite的例子
Aug 14 #Python
Python将主机名转换为IP地址的方法
Aug 14 #Python
Python利用WMI实现ping命令的例子
Aug 14 #Python
使用Windows批处理和WMI设置Python的环境变量方法
Aug 14 #Python
python for循环remove同一个list过程解析
Aug 14 #Python
如何用Python来理一理红楼梦里的那些关系
Aug 14 #Python
You might like
php定时计划任务的实现方法详解
2013/06/06 PHP
关于使用coreseek并为其做分页的介绍
2013/06/21 PHP
php出现web系统多域名登录失败的解决方法
2014/09/30 PHP
php数组索引与键值操作技巧实例分析
2015/06/24 PHP
Yii2框架BootStrap样式的深入理解
2016/11/07 PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
2017/03/16 PHP
XML+XSL 与 HTML 两种方案的结合
2007/04/22 Javascript
javascript之学会吝啬 精简代码
2010/04/25 Javascript
jquery 层次选择器siblings与nextAll的区别介绍
2013/08/02 Javascript
Jquery Validate 正则表达式实用验证代码大全
2013/08/23 Javascript
javascript实现避免页面按钮重复提交
2015/01/08 Javascript
javascript清空table表格的方法
2015/05/14 Javascript
JQuery中层次选择器用法实例详解
2015/05/18 Javascript
jquery自定义表格样式
2015/11/23 Javascript
详解JavaScript时间格式化
2015/12/23 Javascript
基于jQuery封装的分页组件
2017/06/26 jQuery
JS基于封装函数实现的表格分页完整示例
2018/06/26 Javascript
vue实现重置表单信息为空的方法
2018/09/29 Javascript
基于python的汉字转GBK码实现代码
2012/02/19 Python
python基础教程之lambda表达式使用方法
2014/02/12 Python
讲解Python中的标识运算符
2015/05/14 Python
Java编程迭代地删除文件夹及其下的所有文件实例
2018/02/10 Python
python实现扫描日志关键字的示例
2018/04/28 Python
python的常见矩阵运算(小结)
2019/08/07 Python
OpenCV中VideoCapture类的使用详解
2020/02/14 Python
Django使用Celery加redis执行异步任务的实例内容
2020/02/20 Python
Anaconda+Pycharm环境下的PyTorch配置方法
2020/03/13 Python
tensorflow指定CPU与GPU运算的方法实现
2020/04/21 Python
快速一键生成Python爬虫请求头
2021/03/04 Python
优瑞自动咖啡机官网:Jura
2018/09/29 全球购物
美国排名第一的泳池用品直接来源:In The Swim
2019/09/23 全球购物
PHP如何对用户密码进行加密
2014/07/31 面试题
上海方立数码笔试题
2013/10/18 面试题
人力资源管理专业毕业生自我评价
2013/09/21 职场文书
决心书标准格式
2014/03/11 职场文书
600字作文之感受大自然
2019/11/27 职场文书