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 相关文章推荐
在Python的Flask框架中使用模版的入门教程
Apr 20 Python
python实现用户登录系统
May 21 Python
Python实现自动登录百度空间的方法
Jun 10 Python
Python基于辗转相除法求解最大公约数的方法示例
Apr 04 Python
python中文编码与json中文输出问题详解
Aug 24 Python
解决Python运行文件出现out of memory框的问题
Dec 03 Python
计算机二级python学习教程(1) 教大家如何学习python
May 16 Python
深入学习python多线程与GIL
Aug 26 Python
Python内置方法实现字符串的秘钥加解密(推荐)
Dec 09 Python
解决python-docx打包之后找不到default.docx的问题
Feb 13 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
Mar 09 Python
Python新手学习raise用法
Jun 03 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 等比例缩放图片详解及实例代码
2016/09/18 PHP
PHP获取对象属性的三种方法实例分析
2019/01/03 PHP
25个优雅的jQuery Tooltip插件推荐
2011/05/25 Javascript
jquery入门—数据删除与隔行变色以及图片预览
2013/01/07 Javascript
jQuery使用一个按钮控制图片的伸缩实现思路
2013/04/19 Javascript
JS实现日期加减的方法
2013/11/29 Javascript
基于Jquery实现键盘按键监听
2014/05/11 Javascript
js实现九宫格图片半透明渐显特效的方法
2015/02/16 Javascript
jQuery实现精美的多级下拉菜单特效
2015/03/14 Javascript
如何用javascript计算文本框还能输入多少个字符
2015/07/29 Javascript
Windows 系统下设置Nodejs NPM全局路径
2016/04/26 NodeJs
JS小数运算出现多为小数问题的解决方法
2016/06/02 Javascript
url中的特殊符号有什么含义(推荐)
2016/06/17 Javascript
基于jQuery实现淡入淡出效果轮播图
2020/07/31 Javascript
基于HTML+CSS+JS实现增加删除修改tab导航特效代码
2016/08/05 Javascript
JS作用域闭包、预解释和this关键字综合实例解析
2016/12/16 Javascript
Three.js加载外部模型的教程详解
2017/11/10 Javascript
Echarts动态加载多条折线图的实现代码
2019/05/24 Javascript
vue spa应用中的路由缓存问题与解决方案
2019/05/31 Javascript
vue-router两种模式区别及使用注意事项详解
2019/08/01 Javascript
js全屏事件fullscreenchange 实现全屏、退出全屏操作
2019/09/17 Javascript
通过实例了解JS 连续赋值
2019/09/24 Javascript
DWR内存兼容及无法调用问题解决方案
2020/10/16 Javascript
Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法
2018/01/11 Python
python使用phoenixdb操作hbase的方法示例
2019/02/28 Python
Django框架基础模板标签与filter使用方法详解
2019/07/23 Python
Pycharm中配置远程Docker运行环境的教程图解
2020/06/11 Python
Python 里最强的地图绘制神器
2021/03/01 Python
碧欧泉法国官网:Biotherm法国
2019/10/23 全球购物
普通PHP程序员笔试题
2016/01/01 面试题
理工大学毕业生自荐信
2013/11/01 职场文书
《与朱元思书》的教学反思
2014/04/17 职场文书
爱耳日活动总结
2014/04/30 职场文书
商品陈列协议书
2014/09/29 职场文书
毕业论文致谢词
2015/05/14 职场文书
SQL Server 数据库实验课第五周——常用查询条件
2021/04/05 SQL Server