python实现IP地址更改

大多数用笔记本电脑的朋友都有一个烦恼,那就是在家里和公司的IP地址不一样,上班和回家后都得来回切换IP地址,两个字“麻烦”。

贴上用python写的自动切换IP小程序

注:需要下面两个模块的支持,请朋友们下载自行安装。

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文件夹可以删除。

时间: 2024-10-31 10:41:05

python实现IP地址更改的相关文章

python 查找IP地址归属地

#!/usr/bin/env python # -*- coding: utf-8 -*- #查找IP地址归属地 #writer by keery_log #Create time:2013-10-30 #Last update:2013-10-30 #用法: python chk_ip.py www.google.com |python chk_ip.py 8.8.8.8 |python chk_ip.py ip.txt import signal import urllib import j

python之IP地址或IP段处理模块-ipaddr

python处理IP和IP段的模块基本有两个:IPy与ipaddr IPy基本处理8位.16位.24位掩码的网段,其他的网段处理起来就会出现问题. ipaddr是google出的一个模块,很好的可以处理模块IPy不能解决这个问题,所以建议使用模块ipaddr! 模块地址:http://pythonhosted.org/ipaddr/ 使用介绍: Class总共分为:BaseIP.IPv4.IPv6 ipaddr.IPv4Network()    ipv4网段对象建立 ipaddr.IPv6Net

python编写IP地址与十进制IP转换脚本

IP地址与十进制IP转换 #!/usr/bin/env python #encoding=utf-8 import re import sys import os def ten_to_two(ten_num): two_str = '' while ten_num != 1: a = ten_num % 2 two_str = two_str + str(a) ten_num = ten_num / 2 else: two_str = two_str + str(1) two_str = tw

Python 输入IP地址及掩码告诉你该网段包含的全部地址(IPy模块练习)

IPy模块原本使用时需要输入正确的网络位和掩码,我利用处理报错的机制实现了输入任意IP地址和掩码均可正确输出结果的小程序. 1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # @Date : 2017-09-04 21:57:15 4 # @Author : EnderZhou ([email protected]) 5 # @Link : http://www.cnblogs.com/enderzhou/ 6 # @Version : $

1.Python中IP地址处理IPy模块

安装 先下载源码,地址:ps://pypi.python.org/pypi/IPy/">https://pypi.python.org/pypi/IPy/ ,然后解压后使用命令python setup.py install安装. 使用 1.显示IP类型 >>> IP('192.168.1.1').version() 4 >>> IP('::1').version() 6类似如上所示,通过version方法可以的判断输入的IP是IPv4还是IPv6 . 2

python实现ip地址的包含关系判断

python的IPy模块虽然可以实现一些ip地址的判断,但是不是很完美,有些场景根本判断不出来,还会抛出异常,比如一个地址范围和一个ip/掩码,这种不同类型就无法判断. 对此通过自己写函数来实现ip地址的判断,实现的思路很简单,先把ip地址转换为一个十进制的范围数,然后来判断是否有包含关系. #下面函数可以将ip转换为十进制数def iptoint(self,ip): try: h=[] s = ip.split('.') for temp in s: a=bin(int(temp))[2:]

【python】IP地址处理模块IPy

来源:https://pypi.python.org/pypi/IPy IPy模块 该模块可以方便的处理IPv4和IPv6地址. 以下是从来源中拷贝的一些例子: >>> from IPy import IP>>> ip = IP('127.0.0.0/30')>>> for x in ip:... print(x)...127.0.0.0127.0.0.1127.0.0.2127.0.0.3>>> ip2 = IP('0x7f0000

python 将IP地址转换成打包后的32位格式

python 2.7 #!/usr/bin/env python # Python Network Programming Cookbook -- Chapter - 1 # This program requires Python 2.7 or any later version import socket from binascii import hexlify def convert_ip4_address(): for ip_addr in ['127.0.0.1', '192.168.

Python 获取IP地址

Windows下2种方法:1.使用拨号上网的话,一般都有一个本地ip和一个外网ip,使用python可以很容易的得到这两个ip使用gethostbyname和gethostbyname_ex两个函数可以实现import socketlocalIP = socket.gethostbyname(socket.gethostname())#这个得到本地ipprint "local ip:%s "%localIP ipList = socket.gethostbyname_ex(socket