python 修改本地網(wǎng)絡(luò)配置的方法
本文主要說一下怎么使用Python來修改本地的ip和dns等,因為有本地的ip和dns都是隨機獲取的,有些時候不是很方便,需要修改,我就稍微的封裝了一下,但是隨機ip和網(wǎng)關(guān)、子網(wǎng)掩碼等我都沒有設(shè)置為參數(shù),因為經(jīng)常用也懶得改了,可以自己去修改一下。
測試的時候,在win8.1上面需要用管理員身份才能執(zhí)行,win7似乎是不需要管理員身份的。
使用的Python庫是WMI,這個是默認安裝了的。如果沒有去網(wǎng)上下載即可。
該說的都在注釋里,就直接上代碼了。
# -*- 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() #獲取到本地有網(wǎng)卡信息 self.colNicConfigs = self.wmiService.Win32_NetworkAdapterConfiguration(IPEnabled = True) #print self.colNicConfigs[0] def getAdapter(self): flag = 0 #遍歷所有網(wǎng)卡,找到要修改的那個,這里我是用原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] #設(shè)置新的ip arrSubnetMasks = ['255.248.0.0'] #子網(wǎng)掩碼 arrDefaultGateways = ['10.223.255.254'] #網(wǎng)關(guān) arrGatewayCostMetrics = [1] #這里要設(shè)置成1,代表非自動選擇 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當前ip:%s' % newIP else: if ipRes[0] == 1: print u'\ttip:設(shè)置IP成功,需要重啟計算機!' else: print u'\ttip:修改IP失敗: IP設(shè)置發(fā)生錯誤' 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ā)生錯誤' 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ā)生錯誤' 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'請求超時' in res: #注意亂碼編碼問題 return False else: return True ''' if __name__ == '__main__': update = updateIP() update.runSet() input()
以上這篇python 修改本地網(wǎng)絡(luò)配置的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python 中 -m 的典型用法、原理解析與發(fā)展演變
這篇文章主要介紹了Python 中 -m 的典型用法、原理解析與發(fā)展演變,需要的朋友可以參考下2019-11-1114個用Python實現(xiàn)的Excel常用操作總結(jié)
自從學了Python后就逼迫自己不用Excel,所有操作用Python實現(xiàn)。目的是鞏固Python,與增強數(shù)據(jù)處理能力。本文為大家總結(jié)了14個用Python實現(xiàn)的Excel常用操作,需要的可以參考一下2022-06-06詳解pandas刪除缺失數(shù)據(jù)(pd.dropna()方法)
這篇文章主要介紹了pandas刪除缺失數(shù)據(jù)(pd.dropna()方法),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-06-06解決pytorch 損失函數(shù)中輸入輸出不匹配的問題
這篇文章主要介紹了解決pytorch 損失函數(shù)中輸入輸出不匹配的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06C#返回當前系統(tǒng)所有可用驅(qū)動器符號的方法
這篇文章主要介紹了C#返回當前系統(tǒng)所有可用驅(qū)動器符號的方法,涉及C#操作系統(tǒng)硬件驅(qū)動的相關(guān)技巧,需要的朋友可以參考下2015-04-04基于Python socket實現(xiàn)簡易網(wǎng)絡(luò)聊天室
本文主要介紹了基于Python socket實現(xiàn)簡易網(wǎng)絡(luò)聊天室,本文將通過pyqt5作為桌面應(yīng)用框架,socket作為網(wǎng)絡(luò)編程的框架,從而實現(xiàn)包括客戶端和服務(wù)端的網(wǎng)絡(luò)聊天室的GUI應(yīng)用,需要的可以參考一下2022-07-07