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正则表达式及使用正则表达式的例子
Jan 22 Python
使用python将图片格式转换为ico格式的示例
Oct 22 Python
python 实现倒排索引的方法
Dec 25 Python
用Python抢火车票的简单小程序实现解析
Aug 14 Python
Python 实现大整数乘法算法的示例代码
Sep 17 Python
Anaconda之conda常用命令介绍(安装、更新、删除)
Oct 06 Python
python滑块验证码的破解实现
Nov 10 Python
将python依赖包打包成window下可执行文件bat方式
Dec 26 Python
拿来就用!Python批量合并PDF的示例代码
Aug 10 Python
Manjaro、pip、conda更换国内源的方法
Nov 17 Python
Python绘画好看的星空图
Mar 17 Python
python标准库ElementTree处理xml
May 20 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/10/28 PHP
php去除字符串换行符示例分享
2014/02/13 PHP
WordPress迁移时一些常见问题的解决方法整理
2015/11/24 PHP
php自动载入类用法实例分析
2016/06/24 PHP
php实现的生成迷宫与迷宫寻址算法完整实例
2017/11/06 PHP
PHP实现抽奖功能实例代码
2020/06/30 PHP
在UpdatePanel内jquery easyui效果失效的解决方法
2010/04/11 Javascript
jquery jqPlot API 中文使用教程(非常强大的图表工具)
2011/08/15 Javascript
jquery点击页面任何区域实现鼠标焦点十字效果
2013/06/21 Javascript
一个JS的日期格式化算法示例
2013/07/31 Javascript
jQuery实现鼠标划过展示大图的方法
2015/03/09 Javascript
jQuery+css实现的蓝色水平二级导航菜单效果代码
2015/09/11 Javascript
javascript高仿热血传奇游戏实现代码
2018/02/22 Javascript
详解小程序循环require之坑
2019/03/08 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛 DT VS HGT
2014/05/22 DOTA
[01:02:45]完美世界DOTA2联赛 LBZS vs Forest 第三场 11.07
2020/11/09 DOTA
Python struct.unpack
2008/09/06 Python
Python字符串格式化%s%d%f详解
2018/02/02 Python
对python中类的继承与方法重写介绍
2019/01/20 Python
Python后台开发Django的教程详解(启动)
2019/04/08 Python
基于Python打造账号共享浏览器功能
2019/05/30 Python
numpy数组广播的机制
2019/07/12 Python
Python 实现顺序高斯消元法示例
2019/12/09 Python
keras获得model中某一层的某一个Tensor的输出维度教程
2020/01/24 Python
利用Python将图片中扭曲矩形的复原
2020/09/07 Python
python Matplotlib数据可视化(1):简单入门
2020/09/30 Python
Python ConfigParser模块的使用示例
2020/10/12 Python
mac系统下安装pycharm、永久激活、中文汉化详细教程
2020/11/24 Python
HTML5 Canvas实现文本对齐的方法总结
2016/03/24 HTML / CSS
html5标记文字_动力节点Java学院整理
2017/07/11 HTML / CSS
canvas实现烟花的示例代码
2020/01/16 HTML / CSS
美国最好的葡萄酒网上商店:Wine Library
2019/11/02 全球购物
历史学专业个人的自我评价
2013/10/13 职场文书
面试必备的求职信
2014/05/25 职场文书
承诺书范文
2014/06/03 职场文书
一次SQL如何查重及去重的实战记录
2022/03/13 MySQL