Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Qué comando puede usar Python para cambiar la dirección IP?

¿Qué comando puede usar Python para cambiar la dirección IP?

#!/usr/bin/env python

#-*- codificación: gb2312 -*-

Nombre de archivo: IP.py

importar sitiopersonalizar

importar _winreg

importar ConfigParser

desde ctypes importar *

imprimir 'Detección del adaptador de red en progreso, espere Espera...'

imprimir

netCfgInstanceID = Ninguno

hkey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, \

r' System\ CurrentControlSet\Control\Class{4d36e972-e325-11ce-bfc1-08002be10318}')

keyInfo = _winreg.QueryInfoKey(hkey)

Busque el nombre del adaptador netCfgInstanceID correspondiente al tarjeta de red

para índice en el rango(keyInfo[0]):

hSubKeyName = _winreg.EnumKey(hkey, index)

hSubKey = _winreg.OpenKey( hkey, hSubKeyName)

pruebe:

hNdiInfKey = _winreg.OpenKey(hSubKey, r'Ndi\Interfaces')

lowerRange = _winreg.QueryValueEx(hNdiInfKey, 'LowerRange')

Comprueba si es Ethernet

if lowerRange[0] == 'ethernet':

driverDesc = _winreg.QueryValueEx(hSubKey, ' DriverDesc')[0 ]

print 'Nombre del adaptador de red detectado:', driverDesc

netCfgInstanceID = _winreg.QueryValueEx(hSubKey, 'NetCfgInstanceID')[0]

imprimir ' ID del adaptador de red detectado: ', netCfgInstanceID

si netCfgInstanceID == Ninguno:

imprimir 'Adaptador de red no encontrado, programa cerrado'

salir ()

romper

_winreg.CloseKey(hNdiInfKey)

excepto WindowsError:

imprimir r'Mensaje: No hay clave Ndi\Interfaces '

El ciclo finaliza, actualmente solo se proporciona la función de modificar la IP de una tarjeta de red

_winreg.CloseKey(hSubKey)

_winreg.CloseKey( hkey)

Establecer IP modificando el registro

strKeyName = 'System\CurrentC

ontrolSet\Services\Tcpip\Parameters\Interfaces\' netCfgInstanceID

print 'La dirección de registro del adaptador de red es:\n', strKeyName

hkey = _winreg.OpenKey(_winreg. HKEY_LOCAL_MACHINE , \

strKeyName, \

0, \

_winreg.KEY_WRITE)

config = ConfigParser.ConfigParser()

imprimir

imprimir 'Abriendo el archivo de configuración IP.ini...'

config.readfp(open('IP.ini'))

Dirección IP = config.get("escuela", "DirecciónIP")

SubnetMask = config.get("escuela", "SubnetMask")

GateWay = config.get( "escuela", "GateWay")

DNSServer1 = config.get("escuela", "DNSServer1")

DNSServer2 = config.get("escuela", "DNSServer2")

DNSServer = [DNSServer1, DNSServer2]

imprimir 'La información establecida en el archivo de configuración es la siguiente, verifique:'

imprimir

imprimir 'Dirección IP:', Dirección IP

imprimir 'Máscara de subred:', Máscara de subred

imprimir 'Puerta de enlace predeterminada:', Puerta de enlace

imprimir ' Servidor DNS primario: ', DNSServer1

print 'Servidor DNS secundario:', DNSServer2

print

res = raw_input('Ahora, decida: ingrese 1 , Luego escriba el archivo de configuración en el sistema; ingrese 2 para restaurar la configuración existente del sistema para todas las adquisiciones automáticas; de lo contrario, el programa se cerrará: ')

if str(res) == '1':< / p>

pruebe:

_winreg.SetValueEx(hkey, 'EnableDHCP', Ninguno, _winreg.REG_DWORD, 0x00000000)

_winreg.SetValueEx(hkey, 'IPAddress', Ninguno , _winreg.REG_MULTI_SZ, [Dirección IP])

_winreg.SetValueEx(hkey, 'SubnetMask', Ninguno, _winreg.REG_MULTI_SZ, [SubnetMask])

_winreg.SetValueEx(hkey, ' DefaultGateway', Ninguno, _winreg.REG_MULTI_SZ, [GateWay])

_winreg.SetValueEx(hkey, 'NameServer', Ninguno, _winreg.REG_SZ, ','.join(DNS

Servidor))

excepto WindowsError:

imprimir 'Establecer error de IP'

salir()

_winreg.CloseKey(hkey)

print '¡Cambio exitoso! Tendrá efecto después de restablecer la red'

elif str(res) == '2':

try:

_winreg.SetValueEx(hkey, ' EnableDHCP ', Ninguno, _winreg.REG_DWORD, 0x00000001)

_winreg.SetValueEx(hkey, 'T1', Ninguno, _winreg.REG_DWORD, 0x00000000)

_winreg.SetValueEx(hkey, ' T2 ', Ninguno, _winreg.REG_DWORD, 0x00000000)

_winreg.SetValueEx(hkey, 'NameServer', Ninguno, _winreg.REG_SZ, Ninguno)

_winreg.SetValueEx(hkey, ' DhcpConnForceBroadcastFlag ', Ninguno, _winreg.REG_DWORD, 0x00000000)

_winreg.SetValueEx(hkey, 'Arrendamiento', Ninguno, _winreg.REG_DWORD, 0x00000000)

_winreg.SetValueEx(hkey, ' LeaseObtainedTime ', Ninguno, _winreg.REG_DWORD, 0x00000000)

_winreg.SetValueEx(hkey, 'LeaseTerminatesTime', Ninguno, _winreg.REG_DWORD, 0x00000000)

excepto WindowsError:

imprimir 'Establecer error de IP'

exit()

_winreg.CloseKey(hkey)

imprimir '¡Cambio exitoso! Tendrá efecto después de restablecer la red'

else:

print 'El usuario cancela manualmente y el programa sale'

exit('')