用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

转载于:https://www.cnblogs.com/SunWentao/archive/2008/07/23/1249416.html

用Python更改IP地址(转)相关推荐

  1. python修改ip地址_用Python更改IP地址(转) | 学步园

    #-*- coding: cp936 -*-# #FileName: ModifyIP.py#Date    : 2008-01-15#importwmiprint'正在修改IP,请稍候 'wmiSe ...

  2. python修改ip地址_怎么更改电脑ip地址?基于 Python 爬虫的ip修改设计与实现

    怎么更改电脑ip地址?基于 Python 爬虫原理的篮球鞋选择程序的设计与实现ip修改 [摘 要]伴随着篮球鞋工艺的进步及产业升级,多类型多种类的篮球鞋出现在大众的视野当中.与此同时,消费者对篮球鞋的 ...

  3. 如何在命令行下更改ip地址

    微软的Windows家族从Windows NT开始跨入了网络操作系统的市场,到现在的Windows 2003可以说网络功能在逐渐的完善,在这个成长过程中Windows融入了很多其他网络操作系统的功能, ...

  4. 组策略妙用----通过组策略禁止域用户更改IP地址

    禁止更改IP地址 如果允许用户能够自己更改IP地址,就有可能和网络中其他计算机IP地址冲突.有些单位的网络管理员配置好计算机的IP地址后,不想让用户自己更改.以下示例将会演示禁止用户更改IP地址一种方 ...

  5. cmder上传文件到服务器,wget 结合everything上传文件到服务器端(以及更改ip地址)...

    上传服务器的方式有很多,平时常用的是ssh,scp等一些命令操作,但是当文件足够大的时候,用这些命令就显得力不从心了. 下面推荐一种操作系统是win10环境下上传批量文件到服务端的方法. 需要用到的软 ...

  6. Python对IP地址列表排序、对列表进行去重、IP地址与MAC地址组合的多个元组的列表排序

    1.python对IP地址列表排序 # -*- coding: utf-8 -*-import socket listIP = ['10.5.11.1', '192.168.1.33', '10.5. ...

  7. python对ip地址排序、对列表进行去重

    一:使用python对ip地址排序所用代码示例一: import socketiplist = ['10.5.11.1','192.168.1.33','10.5.2.4','10.5.1.3','1 ...

  8. 软件测试工作怎样修改本机IP,如何在命令行下更改IP地址

    如何在命令行下更改IP地址 发表于:2007-07-02来源:作者:点击数: 标签: 微软的Windows家族从Windows NT开始跨入了 网络 操作系统的市场,到现在的Windows 2000可 ...

  9. C++不重起Windows直接更改IP地址

    出处:http://www.cppblog.com/lizao2/archive/2012/10/11/193147.aspx 源代码运行效果图如下: 设置IP地址只需要更改注册表中关于适配器的相应设 ...

最新文章

  1. python笔记基础
  2. SAP QM Batch to Batch的转移过账事务中的Vendor Batch
  3. BAT批处理文件无法运行提示“/E /I /Y ‘XCOPY‘ 不是内部或外部命令,也不是可运行的程序或批处理文件”解决方法
  4. 你不知道的 IDEA Debug 调试小技巧!
  5. [转载]linux下上传文件真的需要ftp么?
  6. ftp 上传文件夹_建站上传下载FTP工具
  7. 人脸识别经典算法实现(三)——LBP算法
  8. 三阶魔方复原操作方法
  9. 页游终端服务器,页游定制高防服务器秒解封服务器
  10. 大病众筹平台会成为下一个“网络诈骗”工具吗?
  11. 哪款蓝牙耳机降噪好?值得推荐的降噪蓝牙耳机!
  12. STM32单片机的启动模式 三种BOOT模式介绍
  13. 12,MongoDB的视图
  14. 06 - 微信公众号的菜单配置
  15. JSP - java服务器页面 (page)
  16. [算法]力扣刷题-初级算法 - 数组(三)(数组篇完结) [两数之和] [有效的数独] [旋转图像]
  17. SIKI学院:MySQL数据库从零到精通:二十三:课时 27 : 26-数据库的备份和恢复+课时 28 : 27-结语
  18. html版本的网站地图只适合,网站地图-乐云SEO优化知识
  19. 宝塔linux 4g2h优化方案,5G优化案例:5G NSA组网下4G锚点基站X2配置优化研究方案案例.docx...
  20. Python 面向对象 计算各种图形的周长(接口与多态)

热门文章

  1. tenjin - 号称全球最快的模板引擎
  2. software engineering interview domain
  3. 邮件的一个推送这个系统怎么去搭建的摘抄:感觉有很多的开源的邮件服务器可以参考使用搭建,据说wordpress有集成服务
  4. csdn开发者报告中学习到的新知识
  5. 计算机系学生的简单立体宿舍装潢大赏
  6. 北京通州拟3年培训技能人才5万人次 服务城市副中心行政办公区等
  7. iOS总结:项目中的各种小坑汇总
  8. Linux下的tr编辑器命令详解
  9. 《重新认识你自己》八:与真实的自我相处
  10. NYOJ 631 冬季长跑