Python 利用WMI 修改Windows的IP和DNS


javaWeb開發,經常線上線下切換,操作有點小麻煩,咂摸着就搞了個腳本。

先用easy_install安裝pywin32和wmi(wmi依賴win32api)

參考別人的代碼修改

#!/usr/bin/python2.7 
# -*- coding: gb2312 -*- 
'''
Created on 2013-10-11

@author: Daemon
'''
import sys
import wmi 
def developModel():#開發模式,切換DNS 
    wmiService = wmi.WMI ()
    colNicConfigs = wmiService.Win32_NetworkAdapterConfiguration(IPEnabled = True)
    if len(colNicConfigs) < 1:
        print "沒有找到可用的網絡適配器"
        exit()
    objNicConfig=colNicConfigs[0]
    arrDNSServers = ['192.168.1.1']
    returnValue =objNicConfig.SetDNSServerSearchOrder(DNSServerSearchOrder = arrDNSServers)
    if returnValue[0] == 0 :
        print "修改DNS成功"
    elif returnValue[0] == 1 :
        print "修改DNS成功"
    else:
        print "修改DNS失敗"
def nonDevelopModel():#線上,自動獲取DNS
    wmiService = wmi.WMI ()
    colNicConfigs = wmiService.Win32_NetworkAdapterConfiguration(IPEnabled = True)
    if len(colNicConfigs) < 1:
        print "沒有找到可用的網絡適配器"
        exit()
    objNicConfig=colNicConfigs[0]
    returnValue =objNicConfig.SetDNSServerSearchOrder()#這句不能少
    returnValue =objNicConfig.EnableDHCP()
    if returnValue[0] == 0 :
        print "修改DNS成功"
    elif returnValue[0] == 1 :
        print "修改DNS成功"
    else:
        print returnValue[0]
        print "修改DNS失敗"
fh=open("C:\Windows\System32\drivers\etc\hosts","rb")#修改我的hosts里配置
lines=[]
flag=0
for i in fh.readlines():
    if i.find("#127.0.0.1")==0:#我的配置文件只有一個#127.0.0.1 www.XXXX.com 項目域名(當有多個時,此處會出bug)
        flag=1
        lines.append(i[1:])#去掉127前的#號
    elif i.find("127.0.0.1")==0:
        lines.append("#"+i)
        flag=0
    else:
        lines.append(i)
open("C:\Windows\System32\drivers\etc\hosts","wb").writelines(lines)

if flag==0:
    print "非開發模式"
    nonDevelopModel()
else:
    print "開發模式"
    developModel()
raw_input() 
    

最后轉為exe :pyinstaller -F xxx.py;搞定收工。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM