¿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 ' p>
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() p >
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") p>
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
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('') p>