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开发中爬虫使用代理proxy抓取网页的方法示例
Sep 26 Python
Python使用win32 COM实现Excel的写入与保存功能示例
May 03 Python
Python List cmp()知识点总结
Feb 18 Python
numpy中的meshgrid函数的使用
Jul 31 Python
python基于json文件实现的gearman任务自动重启代码实例
Aug 13 Python
Python队列、进程间通信、线程案例
Oct 25 Python
Python文件时间操作步骤代码详解
Apr 13 Python
PyTorch在Windows环境搭建的方法步骤
May 12 Python
解决redis与Python交互取出来的是bytes类型的问题
Jul 16 Python
使用Python解析Chrome浏览器书签的示例
Nov 13 Python
numpy数据类型dtype转换实现
Apr 24 Python
python中if和elif的区别介绍
Nov 07 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 foreach循环使用详解与实例代码
2010/05/08 PHP
在PHP中利用wsdl创建标准webservice的实现代码
2011/12/07 PHP
php开发文档 会员收费1期
2012/08/14 PHP
php实现批量压缩图片文件大小的脚本
2014/07/04 PHP
php高清晰度无损图片压缩功能的实现代码
2018/12/09 PHP
CheckBox 如何实现全选?
2006/06/23 Javascript
javascript显示隐藏层比较不错的方法分析
2008/09/30 Javascript
使用原生js写的一个简单slider
2014/04/29 Javascript
在浏览器中实现图片粘贴的jQuery插件-- pasteimg使用指南
2014/12/29 Javascript
JavaScript模版引擎的基本实现方法浅析
2016/02/15 Javascript
jquery 获取select数组与name数组长度的实现代码
2016/06/20 Javascript
微信小程序  简单实例(阅读器)的实例开发
2016/09/29 Javascript
js实现砖头在页面拖拉效果
2020/11/20 Javascript
文件上传的几个示例分享【推荐】
2016/12/16 Javascript
Vue.2.0.5过渡效果使用技巧
2017/03/16 Javascript
angular 实现下拉列表组件的示例代码
2019/03/09 Javascript
Python函数嵌套实例
2014/09/23 Python
python实现在pandas.DataFrame添加一行
2018/04/04 Python
基于Python列表解析(列表推导式)
2018/06/23 Python
python3-flask-3将信息写入日志的实操方法
2019/11/12 Python
Python3基本输入与输出操作实例分析
2020/02/14 Python
Python 实现将某一列设置为str类型
2020/07/14 Python
CSS3 input框的实现代码类似Google登录的动画效果
2020/08/04 HTML / CSS
火山咖啡:Volcanica Coffee
2019/10/29 全球购物
俄罗斯在线服装店:STOLNIK
2021/03/07 全球购物
Fanatics官网:运动服装、球衣、运动装备
2020/10/12 全球购物
大四自我鉴定
2014/02/08 职场文书
珠宝店促销方案
2014/03/21 职场文书
车间主任岗位职责
2015/02/03 职场文书
幼儿园教师自荐书
2015/03/06 职场文书
个人年底工作总结
2015/03/10 职场文书
网站文案策划岗位职责
2015/04/14 职场文书
校运会通讯稿
2015/07/18 职场文书
Python批量解压&压缩文件夹的示例代码
2022/04/04 Python
nginx location 带斜杠【 / 】与不带的区别
2022/04/13 Servers
nginx设置资源请求目录的方式详解
2022/05/30 Servers