在辦公室有兩個網(wǎng)絡需要隨時切換使用,而且需要靜態(tài)獲取,每次手動太麻煩陵刹,所以寫了個腳本用來自動切換ip。
源碼已經(jīng)上傳:https://github.com/juventusryp/python-in-life
# -*- coding: utf-8 -*-
import wmi
import random
print ('正在修改IP,請稍候...')
wmiService = wmi.WMI()
colNicConfigs = wmiService.Win32_NetworkAdapterConfiguration(IPEnabled = True)
if len(colNicConfigs) < 1:
print ('沒有找到可用的網(wǎng)絡適配器')
exit()
print ("-------------------------------------------------------\n")
for i in range(len(colNicConfigs)):
print (str(i+1)+" : ",colNicConfigs[i].IPAddress)
print ("-------------------------------------------------------\n")
i=int(input("選擇以太網(wǎng)卡:\n"))
objNicConfig = colNicConfigs[i-1]
i=int(input("---------------------------\n1欢嘿、切換成校園網(wǎng)\n2衰琐、切換成聯(lián)通網(wǎng)\n---------------------------\n"))
if(i==1):
arrIPAddresses = ['192.168.2.11']
arrSubnetMasks = ['255.255.255.0']
arrDefaultGateways = ['192.168.2.1']
arrGatewayCostMetrics = [1]
arrDNSServers = ['114.114.114.114', '8.8.8.8']
intReboot = 0
returnValue = objNicConfig.EnableStatic(IPAddress = arrIPAddresses, SubnetMask =arrSubnetMasks)
if returnValue[0] == 0 or returnValue[0] == 1:
print ('設置IP成功')
intReboot += returnValue[0]
else:
print ('修改失敗: IP或子網(wǎng)掩碼設置發(fā)生錯誤')
returnValue = objNicConfig.SetGateways(DefaultIPGateway = arrDefaultGateways, GatewayCostMetric = arrGatewayCostMetrics)
if returnValue[0] == 0 or returnValue[0] == 1:
print ('設置網(wǎng)關成功')
intReboot += returnValue[0]
else:
print ('修改失敗: 網(wǎng)關設置發(fā)生錯誤')
returnValue = objNicConfig.SetDNSServerSearchOrder(DNSServerSearchOrder = arrDNSServers)
if returnValue[0] == 0 or returnValue[0] == 1:
print ('設置DNS成功')
intReboot += returnValue[0]
else:
print (str(returnValue)+'修改失敗: DNS設置發(fā)生錯誤')
else:
arrIPAddresses = ['10.253.201.100']
arrSubnetMasks = ['255.255.224.0']
arrDefaultGateways = ['10.253.223.254']
arrGatewayCostMetrics = [1]
arrDNSServers = ['114.114.114.114', '8.8.8.8']
intReboot = 0
returnValue = objNicConfig.EnableStatic(IPAddress = arrIPAddresses, SubnetMask =arrSubnetMasks)
if returnValue[0] == 0 or returnValue[0] == 1:
print ('設置IP成功')
intReboot += returnValue[0]
else:
print ('修改失敗: IP或子網(wǎng)掩碼設置發(fā)生錯誤')
returnValue = objNicConfig.SetGateways(DefaultIPGateway = arrDefaultGateways, GatewayCostMetric = arrGatewayCostMetrics)
if returnValue[0] == 0 or returnValue[0] == 1:
print ('設置網(wǎng)關成功')
intReboot += returnValue[0]
else:
print ('修改失敗: 網(wǎng)關設置發(fā)生錯誤')
returnValue = objNicConfig.SetDNSServerSearchOrder(DNSServerSearchOrder = arrDNSServers)
if returnValue[0] == 0 or returnValue[0] == 1:
print ('設置DNS成功')
intReboot += returnValue[0]
else:
print (str(returnValue)+'修改失敗: DNS設置發(fā)生錯誤')
if intReboot > 0:
print ('需要重新啟動計算機')
print ('修改結束')