百度空间 | 百度首页 
 
查看文章
 
用Python更改IP地址
2008/02/15 11:07

大多数用笔记本电脑的朋友都有一个烦恼,那就是在家里和公司的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的小软件就做好了,以后来回切换就轻松多了,嘿嘿!!!


类别:技术积累 | 添加到搜藏 | 浏览() | 评论 (2)
 
最近读者:
 
网友评论:
1
2009/07/01 15:22 | 回复
一无用处
 
2
2009/10/06 19:36 | 回复
为什么不把code作者的邮箱还有姓名也放上来?可以删可不好
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu