用Python更改IP地址)

來源:互聯網
上載者:User
用Python更改IP地址(轉)

大多數用膝上型電腦的朋友都有一個煩惱,那就是在家裡和公司的IP地址不一樣,上班和回家後都得來回切換IP地址,兩個字“麻煩”。最近在寫Python,於是在網上尋找是否Python能夠勝任這份造福的工作,很幸運,找到了,這是網路上的一個實現方法,經測試通過,大家可以使用。

註:需要下面兩個模組的支援,請朋友們下載自行安裝。

Tim Golden對WMI的封裝模組

Python for Windows extensions(pywin32)

源碼如下:

 

# -*- coding: cp936 -*-
#
# FileName: ModifyIP.py
# Date    : 2008-01-15


import wmi 

print '正在修改IP,請稍候' 

wmiService = wmi.WMI()
colNicConfigs = wmiService.Win32_NetworkAdapterConfiguration(IPEnabled = True) 

#for objNicConfig in colNicConfigs:
#    print objNicConfig.Index
#    print objNicConfig.SettingID
#    print objNicConfig.Description.encode("cp936")
#    print objNicConfig.IPAddress
#    print objNicConfig.IPSubnet
#    print objNicConfig.DefaultIPGateway
#    print objNicConfig.DNSServerSearchOrder 

if len(colNicConfigs) < 1:
    print '沒有找到可用的網路介面卡'
    exit()
objNicConfig = colNicConfigs[0] 

#for method_name in objNicConfig.methods:
#    method = getattr(objNicConfig, method_name)
#    print method 

arrIPAddresses = ['172.16.151.147']
arrSubnetMasks = ['255.255.255.0']
arrDefaultGateways = ['172.16.151.1']
arrGatewayCostMetrics = [1]
arrDNSServers = ['172.16.151.10']
intReboot = 0 

returnValue = objNicConfig.EnableStatic(IPAddress = arrIPAddresses, SubnetMask = arrSubnetMasks) 

if returnValue[0] == 0:
    print '設定IP成功'
elif returnValue[0] == 1:
    print '設定IP成功'
    intReboot += 1
else:
    print '修改IP失敗: IP設定發生錯誤'
    exit()
returnValue = objNicConfig.SetGateways(DefaultIPGateway = arrDefaultGateways, GatewayCostMetric = arrGatewayCostMetrics)
if returnValue[0] == 0:
    print '設定網關成功'
elif returnValue[0] == 1:
    print '設定網關成功'
    intReboot += 1
else:
    print '修改IP失敗: 網關設定發生錯誤'
    exit() 

returnValue = objNicConfig.SetDNSServerSearchOrder(DNSServerSearchOrder = arrDNSServers)
if returnValue[0] == 0:
    print '設定DNS成功'
elif returnValue[0] == 1:
    print '設定DNS成功'
    intReboot += 1
else:
    print '修改IP失敗: DNS設定發生錯誤'
    exit() 

if intReboot > 0:
    print '需要重新啟動電腦'
else:
    print ''
    print '修改後的配置為:'
    print 'IP: ', ', '.join(objNicConfig.IPAddress)
    print '掩碼: ', ', '.join(objNicConfig.IPSubnet)
    print '網關: ', ', '.join(objNicConfig.DefaultIPGateway)
    print 'DNS: ', ', '.join(objNicConfig.DNSServerSearchOrder) 

print '修改IP結束' 

 

功能上述已經實現了,現在我們再把它做成EXE執行檔案,畢竟在Windows下,使用起來方便,一勞永逸呀!:)

1、建立編譯檔案setup.py

代碼如下:

 

from distutils.core import setup
import py2exe 

setup(console=['ModifyIP.py']) 

 

2、進行編譯

 

python setup.py py2exe 

 

如果朋友們沒有安裝py2exe,請點擊這裡下載py2exe.exe並安裝。注意要找對應於你所安裝的python版本。

3、執行exe檔案

編譯以後會自動產生build和dist兩個檔案夾,產生的exe檔案在dist檔案夾中,我們只要保留dist檔案夾下的所有檔案(必須全部保留),build檔案夾可以刪除。

好了,我們用Python更改IP的小軟體就做好了,以後來回切換就輕鬆多了,嘿嘿!!!

 

轉自:

http://zhulinywj.spaces.live.com/Blog/cns!BB862E2AA454A862!357.entry

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.