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 socket C/S结构的聊天室应用实现
Nov 30 Python
Python字典,函数,全局变量代码解析
Dec 18 Python
PyQt5每天必学之事件与信号
Apr 20 Python
关于python写入文件自动换行的问题
Jun 23 Python
对pandas中Series的map函数详解
Jul 25 Python
用pycharm开发django项目示例代码
Oct 24 Python
Django框架之登录后自定义跳转页面的实现方法
Jul 18 Python
win7下 python3.6 安装opencv 和 opencv-contrib-python解决 cv2.xfeatures2d.SIFT_create() 的问题
Oct 24 Python
pygame实现俄罗斯方块游戏(AI篇1)
Oct 29 Python
python数据预处理 :数据共线性处理详解
Feb 24 Python
python判断一个变量是否已经设置的方法
Aug 13 Python
python字典的元素访问实例详解
Jul 21 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
磨咖啡豆的密诀
2021/03/03 冲泡冲煮
PHP url 加密解密函数代码
2011/08/26 PHP
YII中assets的使用示例
2014/07/31 PHP
php导出CSV抽象类实例
2014/09/24 PHP
php随机显示指定文件夹下图片的方法
2015/07/13 PHP
jquery不支持toggle()高(新)版本的问题解决
2016/09/24 PHP
腾讯的ip接口 方便获取当前用户的ip地理位置
2010/11/25 Javascript
javascript实现图片切换的幻灯片效果源代码
2012/12/12 Javascript
jquery的父子兄弟节点查找示例代码
2014/03/03 Javascript
使用js Math.random()函数生成n到m间的随机数字
2014/10/09 Javascript
jQuery on方法传递参数示例
2014/12/09 Javascript
jQuery实现的在线答题功能
2015/04/12 Javascript
javascript禁止访客复制网页内容的实现代码
2015/08/05 Javascript
JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性
2015/12/26 Javascript
JS获取当前使用的浏览器名字以及版本号实现方法
2016/08/19 Javascript
vue实现移动端悬浮窗效果
2018/12/01 Javascript
Element-ui自定义table表头、修改列标题样式、添加tooltip、:render-header使用
2019/04/11 Javascript
Ajax请求时无法重定向的问题解决代码详解
2019/06/21 Javascript
JavaScript判断数组类型的方法
2019/10/23 Javascript
JS一次前端面试经历记录
2020/03/19 Javascript
2分钟实现一个Vue实时直播系统的示例代码
2020/06/05 Javascript
[36:45]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python3爬虫学习入门教程
2018/12/11 Python
一篇文章弄懂Python中所有数组数据类型
2019/06/23 Python
python 实现dict转json并保存文件
2019/12/05 Python
win10下python3.8的PIL库安装过程
2020/06/08 Python
英国家居用品和家居装饰品购物网站:Cox & Cox
2019/08/25 全球购物
美国排名第一的泳池用品直接来源:In The Swim
2019/09/23 全球购物
英国领先的在线高尔夫设备零售商:Golfgeardirect
2020/12/11 全球购物
初中班主任寄语
2014/04/04 职场文书
股东合作协议书范本
2014/04/14 职场文书
五好家庭申报材料
2014/12/20 职场文书
2015年班级工作总结范文
2015/04/03 职场文书
《为人民服务》教学反思
2016/02/20 职场文书
高中16字霸气押韵班级口号集锦!
2019/06/27 职场文书
vue首次渲染全过程
2021/04/21 Vue.js