python 修改本地網(wǎng)絡(luò)配置的方法
本文主要說一下怎么使用Python來修改本地的ip和dns等,因?yàn)橛斜镜氐膇p和dns都是隨機(jī)獲取的,有些時(shí)候不是很方便,需要修改,我就稍微的封裝了一下,但是隨機(jī)ip和網(wǎng)關(guān)、子網(wǎng)掩碼等我都沒有設(shè)置為參數(shù),因?yàn)榻?jīng)常用也懶得改了,可以自己去修改一下。
測(cè)試的時(shí)候,在win8.1上面需要用管理員身份才能執(zhí)行,win7似乎是不需要管理員身份的。
使用的Python庫是WMI,這個(gè)是默認(rèn)安裝了的。如果沒有去網(wǎng)上下載即可。
該說的都在注釋里,就直接上代碼了。
# -*- coding: utf-8 -*-
import os
import random
import re
from time import sleep
from wmi import WMI
#隨機(jī)修改指定ip段的本機(jī)ip
class updateIP:
def __init__(self):
self.wmiService = WMI()
#獲取到本地有網(wǎng)卡信息
self.colNicConfigs = self.wmiService.Win32_NetworkAdapterConfiguration(IPEnabled = True)
#print self.colNicConfigs[0]
def getAdapter(self):
flag = 0
#遍歷所有網(wǎng)卡,找到要修改的那個(gè),這里我是用原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()]
'''
#檢測(cè)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
'''
#隨機(jī)選擇了ip的第二段
ip2 = random.choice(['216', '217'])
ip3 = random.randint(1, 254) #隨機(jī)生成第三段和第二段的值
ip4 = random.randint(1, 254)
newIP = '10.%s.%s.%s' % (ip2, ip3, ip4)
arrIPAddresses = [newIP] #設(shè)置新的ip
arrSubnetMasks = ['255.248.0.0'] #子網(wǎng)掩碼
arrDefaultGateways = ['10.223.255.254'] #網(wǎng)關(guān)
arrGatewayCostMetrics = [1] #這里要設(shè)置成1,代表非自動(dòng)選擇
arrDNSServers = ['211.137.191.26'] #dns服務(wù)器
#開始執(zhí)行修改ip、子網(wǎng)掩碼、網(wǎng)關(guān)
ipRes = adapter.EnableStatic(IPAddress = arrIPAddresses, SubnetMask = arrSubnetMasks)
if ipRes[0] == 0:
print u'\ttip:設(shè)置IP成功'
print u'\t當(dāng)前ip:%s' % newIP
else:
if ipRes[0] == 1:
print u'\ttip:設(shè)置IP成功,需要重啟計(jì)算機(jī)!'
else:
print u'\ttip:修改IP失敗: IP設(shè)置發(fā)生錯(cuò)誤'
return False
#開始執(zhí)行修改dns
wayRes=adapter.SetGateways(DefaultIPGateway = arrDefaultGateways, GatewayCostMetric=arrGatewayCostMetrics)
if wayRes[0] == 0:
print u'\ttip:設(shè)置網(wǎng)關(guān)成功'
else:
print u'\ttip:修改網(wǎng)關(guān)失敗: 網(wǎng)關(guān)設(shè)置發(fā)生錯(cuò)誤'
return False
dnsRes = adapter.SetDNSServerSearchOrder(DNSServerSearchOrder=arrDNSServers)
if dnsRes[0] == 0:
print u'\ttip:設(shè)置DNS成功,等待3秒刷新緩存'
sleep(3)
#刷新DNS緩存使DNS生效
os.system('ipconfig /flushdns')
else:
print u'\ttip:修改DNS失敗: DNS設(shè)置發(fā)生錯(cuò)誤'
return False
'''
//ping某ip看是否可以通
def pingIP(self, ip):
res = os.popen('ping -n 2 -w 1 %s' % ip).read() #內(nèi)容返回到res
res = res.decode('gbk')
if u'請(qǐng)求超時(shí)' in res: #注意亂碼編碼問題
return False
else:
return True
'''
if __name__ == '__main__':
update = updateIP()
update.runSet()
input()
以上這篇python 修改本地網(wǎng)絡(luò)配置的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python3實(shí)現(xiàn)定時(shí)任務(wù)的四種方式
Python實(shí)現(xiàn)定點(diǎn)與定時(shí)任務(wù)方式比較多,找到下面四中實(shí)現(xiàn)方式,每個(gè)方式都有自己應(yīng)用場景;下面來快速介紹Python中常用的定時(shí)任務(wù)實(shí)現(xiàn)方式,一起看看吧2019-06-06
如何用Python和JS實(shí)現(xiàn)的Web SSH工具
這篇文章主要介紹了如何用Python和JS實(shí)現(xiàn)的Web SSH工具,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02
python中的計(jì)時(shí)器timeit的使用方法
本篇文章主要介紹了python中的計(jì)時(shí)器timeit的使用方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10
基于Tensorflow搭建一個(gè)神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)
神經(jīng)網(wǎng)絡(luò)可能會(huì)讓人感到恐懼,特別是對(duì)于新手機(jī)器學(xué)習(xí)的人來說。這篇文章主要介紹了基于Tensorflow搭建一個(gè)神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn),從入門開始,感興趣的可以了解一下2021-05-05
在Linux系統(tǒng)上部署Apache+Python+Django+MySQL環(huán)境
這篇文章主要介紹了在Linux系統(tǒng)上部署Apache+Python+Django+MySQL環(huán)境的方法,使用到了mod_python 與mysqldb模塊進(jìn)行連接,需要的朋友可以參考下2015-12-12
python中pivot()函數(shù)基礎(chǔ)知識(shí)點(diǎn)
在本篇內(nèi)容里小編給大家分享的是一篇關(guān)于python中pivot()函數(shù)基礎(chǔ)知識(shí)點(diǎn)內(nèi)容,對(duì)此有興趣的朋友們可以參考學(xué)習(xí)下。2021-01-01
python如何實(shí)現(xiàn)wifi自動(dòng)連接,解決電腦wifi經(jīng)常斷開問題
這篇文章主要介紹了python實(shí)現(xiàn)wifi自動(dòng)連接,解決電腦wifi經(jīng)常斷開的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
pytorch人工智能之torch.gather算子用法示例
這篇文章主要介紹了pytorch人工智能之torch.gather算子用法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
Pytorch之ToPILImage()不輸出圖片問題及解決
這篇文章主要介紹了Pytorch之ToPILImage()不輸出圖片問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
Python3利用Qt5實(shí)現(xiàn)簡易的五子棋游戲
這篇文章主要為大家詳細(xì)介紹了Python3利用Qt5實(shí)現(xiàn)簡易的五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05

