È possibile utilizzare il Python WMI module per fare questo (installare il PyWin32 extensions e il modulo WMI prima di eseguire questi script). Ecco come configurare le cose a parlare con il dispositivo hardware:
import wmi
# Obtain network adaptors configurations
nic_configs = wmi.WMI().Win32_NetworkAdapterConfiguration(IPEnabled=True)
# First network adaptor
nic = nic_configs[0]
# IP address, subnetmask and gateway values should be unicode objects
ip = u'192.168.0.11'
subnetmask = u'255.255.255.0'
gateway = u'192.168.0.1'
# Set IP address, subnetmask and default gateway
# Note: EnableStatic() and SetGateways() methods require *lists* of values to be passed
nic.EnableStatic(IPAddress=[ip],SubnetMask=[subnetmask])
nic.SetGateways(DefaultIPGateway=[gateway])
Ecco come ripristinare ottenere automaticamente un indirizzo IP (tramite DHCP):
import wmi
# Obtain network adaptors configurations
nic_configs = wmi.WMI().Win32_NetworkAdapterConfiguration(IPEnabled=True)
# First network adaptor
nic = nic_configs[0]
# Enable DHCP
nic.EnableDHCP()
Nota: in uno script di produzione si dovrebbe controllare i valori restituiti da EnableStatic(), SetGateways() e EnableDHCP(). ('0' significa successo, '1' significa riavvio richiesto e altri valori sono descritti nelle pagine MSDN collegate ai nomi dei metodi Nota: per EnableStatic() e SetGateways(), i codici di errore vengono restituiti come elenchi).
Le informazioni complete su tutte le funzionalità della classe Win32NetworkAdapterConfiguration possono anche essere found on MSDN.
Nota: l'ho provato con Python 2.7, ma poichè i moduli PyWIn32 e WMI sono disponibili per Python 3, credo che dovresti essere in grado di farlo funzionare per Python 3 rimuovendo la "u" prima delle stringhe letterali.
domanda correlata: http://stackoverflow.com/questions/83756/how-to-programmatically-enable-disable-network-interfaces-windows-xp – tzot