zoukankan      html  css  js  c++  java
  • 用Python更改IP地址(转)

    用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

  • 相关阅读:
    ASP.NET MVC下的四种验证编程方式
    tp框架下,数据库和编辑器都是utf-8, 输出中文却还是乱码
    按拼音首字母排序
    PHP 文件导出(Excel, CSV,txt)
    RedisDesktopManager 可视化工具提示:无法加载键:Scan..
    window下redis如何查看版本号
    jQuery 防止相同的事件快速重复触发
    input中加入搜索图标
    JS搜索商品(跟外卖app店内搜索商品一样) ,keyup函数和click函数调用
    JS正则对象 RegExp(有变量的时候使用),用来匹配搜索关键字(标红)
  • 原文地址:https://www.cnblogs.com/SunWentao/p/1249416.html
Copyright © 2011-2022 走看看