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 正则表达式 概述及常用字符
May 04 Python
使用Python下载歌词并嵌入歌曲文件中的实现代码
Nov 13 Python
Python中常用操作字符串的函数与方法总结
Feb 04 Python
python 字典(dict)按键和值排序
Jun 28 Python
非递归的输出1-N的全排列实例(推荐)
Apr 11 Python
Python实现的概率分布运算操作示例
Aug 14 Python
Django 根据数据模型models创建数据表的实例
May 27 Python
python爬虫之urllib,伪装,超时设置,异常处理的方法
Dec 19 Python
pytorch使用Variable实现线性回归
May 21 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
Mar 30 Python
关于keras中keras.layers.merge的用法说明
May 23 Python
Python连接mysql数据库及简单增删改查操作示例代码
Aug 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实现按指定大小等比缩放生成上传图片缩略图的方法
2014/12/15 PHP
解决laravel 5.1报错:No supported encrypter found的办法
2017/06/07 PHP
详解Yii2.0使用AR联表查询实例
2017/06/16 PHP
php实现微信支付之企业付款
2018/05/30 PHP
使用 JScript 创建 .exe 或 .dll 文件的方法
2011/07/13 Javascript
jQuery EasyUI API 中文文档 - Parser 解析器
2011/09/29 Javascript
用JavaScript修改CSS属性的代码
2013/05/06 Javascript
javascript上传图片前预览图片兼容大多数浏览器
2013/10/25 Javascript
javascript获取和判断浏览器窗口、屏幕、网页的高度、宽度等
2014/05/08 Javascript
jQuery元素选择器用法实例
2014/12/23 Javascript
jquery实现的点击翻书效果代码
2015/11/04 Javascript
JS检测页面中哪个HTML标签触发点击事件的方法
2016/06/17 Javascript
jQuery实现的表头固定效果实例【附完整demo源码下载】
2016/08/01 Javascript
Kendo Grid editing 自定义验证报错提示的解决方法
2016/11/18 Javascript
优雅的处理vue项目异常实战记录
2019/06/05 Javascript
vue+element导航栏高亮显示的解决方式
2019/11/12 Javascript
vuex分模块后,实现获取state的值
2020/07/26 Javascript
vue 需求 data中的数据之间的调用操作
2020/08/05 Javascript
python复制文件的方法实例详解
2015/05/22 Python
Python六大开源框架对比
2015/10/19 Python
python 2.7.14安装图文教程
2018/04/08 Python
python中使用while循环的实例
2019/08/05 Python
Python selenium自动化测试模型图解
2020/04/15 Python
webView加载html图片遇到的问题解决
2019/10/08 HTML / CSS
Stokke美国官方网店:高级儿童家具、推车、汽车座椅和配件
2020/06/06 全球购物
前台文员的岗位职责
2013/11/14 职场文书
教师党员个人剖析材料
2014/09/29 职场文书
村当支部个人对照检查材料思想汇报
2014/10/06 职场文书
有限公司股东合作协议书
2014/10/29 职场文书
2014年反腐倡廉工作总结
2014/12/05 职场文书
长城的导游词
2015/01/30 职场文书
个人工作总结怎么写?
2019/04/09 职场文书
写给汽车4S店的创业计划书,拿来即用!
2019/08/09 职场文书
详解CocosCreator消息分发机制
2021/04/16 Javascript
解决Python字典查找报Keyerror的问题
2021/05/26 Python
Java版 简易五子棋小游戏
2022/05/04 Java/Android