python实现自动更换ip的方法
本文实例讲述了python实现自动更换ip的方法。分享给大家供大家参考。具体实现方法如下:
#!/usr/bin/env python #-*- encoding:gb2312 -*- # Filename: IP.py import sitecustomize import _winreg import ConfigParser from ctypes import * print '正在进行网络适配器检测,请稍候…' print netCfgInstanceID = None hkey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, \ r'System\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}') keyInfo = _winreg.QueryInfoKey(hkey) # 寻找网卡对应的适配器名称 netCfgInstanceID for index in range(keyInfo[0]): hSubKeyName = _winreg.EnumKey(hkey, index) hSubKey = _winreg.OpenKey(hkey, hSubKeyName) try: hNdiInfKey = _winreg.OpenKey(hSubKey, r'Ndi\Interfaces') lowerRange = _winreg.QueryValueEx(hNdiInfKey, 'LowerRange') # 检查是否是以太网 if lowerRange[0] == 'ethernet': driverDesc = _winreg.QueryValueEx(hSubKey, 'DriverDesc')[0] print '检测到网络适配器名:', driverDesc netCfgInstanceID = _winreg.QueryValueEx(hSubKey, 'NetCfgInstanceID')[0] print '检测到网络适配器ID:', netCfgInstanceID if netCfgInstanceID == None: print '没有找到网络适配器,程序退出' exit() break _winreg.CloseKey(hNdiInfKey) except WindowsError: print r'Message: No Ndi\Interfaces Key' # 循环结束,目前只提供修改一个网卡IP的功能 _winreg.CloseKey(hSubKey) _winreg.CloseKey(hkey) # 通过修改注册表设置IP strKeyName = 'System\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces\\' + netCfgInstanceID print '网络适配器的注册表地址是:\n', strKeyName hkey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, \ strKeyName, \ 0, \ _winreg.KEY_WRITE) config = ConfigParser.ConfigParser() print print '正在打开IP.ini配置文件…' config.readfp(open('IP.ini')) IPAddress = config.get("school","IPAddress") SubnetMask = config.get("school","SubnetMask") GateWay = config.get("school","GateWay") DNSServer1 = config.get("school","DNSServer1") DNSServer2 = config.get("school","DNSServer2") DNSServer = [DNSServer1,DNSServer2] print '配置文件内设定的信息如下,请核对:' print print 'IP地址:', IPAddress print '子关掩码:', SubnetMask print '默认网关:', GateWay print '主DNS服务器:', DNSServer1 print '次DNS服务器:', DNSServer2 print res = raw_input('现在,请您决定:输入1,则将配置文件写入系统;输入2,则将现有的系统设定还原为全部自动获取;否则程序退出:') if str(res) == '1': try: _winreg.SetValueEx(hkey, 'EnableDHCP', None, _winreg.REG_DWORD, 0x00000000) _winreg.SetValueEx(hkey, 'IPAddress', None, _winreg.REG_MULTI_SZ, [IPAddress]) _winreg.SetValueEx(hkey, 'SubnetMask', None, _winreg.REG_MULTI_SZ, [SubnetMask]) _winreg.SetValueEx(hkey, 'DefaultGateway', None, _winreg.REG_MULTI_SZ, [GateWay]) _winreg.SetValueEx(hkey, 'NameServer', None, _winreg.REG_SZ, ','.join(DNSServer)) except WindowsError: print 'Set IP Error' exit() _winreg.CloseKey(hkey) print '切换成功!重置网络后即可生效' elif str(res) == '2': try: _winreg.SetValueEx(hkey, 'EnableDHCP', None, _winreg.REG_DWORD, 0x00000001) _winreg.SetValueEx(hkey, 'T1', None, _winreg.REG_DWORD, 0x00000000) _winreg.SetValueEx(hkey, 'T2', None, _winreg.REG_DWORD, 0x00000000) _winreg.SetValueEx(hkey, 'NameServer', None, _winreg.REG_SZ, None) _winreg.SetValueEx(hkey, 'DhcpConnForceBroadcastFlag', None, _winreg.REG_DWORD, 0x00000000) _winreg.SetValueEx(hkey, 'Lease', None, _winreg.REG_DWORD, 0x00000000) _winreg.SetValueEx(hkey, 'LeaseObtainedTime', None, _winreg.REG_DWORD, 0x00000000) _winreg.SetValueEx(hkey, 'LeaseTerminatesTime', None, _winreg.REG_DWORD, 0x00000000) except WindowsError: print 'Set IP Error' exit() _winreg.CloseKey(hkey) print '切换成功!重置网络后即可生效' else: print '用户手动取消,程序退出' exit('')
希望本文所述对大家的Python程序设计有所帮助。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Linux 시스템과 함께 제공되는 Python 통역사를 제거하는 문제와 관련하여 많은 Linux 배포판이 설치 될 때 Python 통역사를 사전 설치하고 패키지 관리자를 사용하지 않습니다 ...

Pylance 유형 감지 문제 솔루션 Python 프로그래밍에서 사용자 정의 데코레이터를 사용할 때 Decorator는 행을 추가하는 데 사용할 수있는 강력한 도구입니다 ...

Pythonasyncio에 대해 ...

Linux 터미널에서 Python 사용 ...

Python 3.6에 피클 파일 로딩 3.6 환경 오류 : ModulenotFounderRor : nomodulename ...

파이썬 비동기 라이브러리 사이의 호환성 문제 파이썬에서 비동기 프로그래밍은 동시성과 I/O의 프로세스가되었습니다 ...

Python 3.6에 피클 파일로드 3.6 환경 보고서 오류 : modulenotfounderror : nomodulename ...

아동 프로세스의 문제와 해결책은 신호를 사용하여 부모 프로세스를 죽일 때 계속 실행됩니다. Python 프로그래밍에서 신호를 통해 부모 프로세스를 죽인 후에도 아동 프로세스는 여전히 ...
