2011-09-28 20 views
10

Bilgisayarımı ethernet yoluyla bir donanım ile iletişim kurmak için kullanıyorum. Bu cihazla iletişim kurmak için ipimi 192 168 0 11, alt ağ maskesini 255 255 255 0 ve varsayılan ağ geçidi IPv4 için 192 168 0 1 olarak ayarladım. İnterneti kullanmak için kontrol paneli üzerinden "Otomatik olarak bir IP adresi al" ı seçerim.Pencerelerde ip adresini değiştirmek için komut dosyası

Hızlıca birini veya diğer ethernet ayarını (donanım veya internet) seçmem için bir komut dosyası kullanmak istiyorum.

Çoğunlukla python programlıyorum ama belki bir yığın dosya çözümü var.

sayesinde

Barry.

+0

İlgili soru: http://stackoverflow.com/questions/83756/how-to-programmatically-enable-disable-network-interfaces-windows-xp – tzot

cevap

16

Sen (bu komut dosyalarını çalıştırmadan önce PyWin32 extensions ve WMI modülünü yüklemek) Bunu yapmak için Python WMI module kullanabilirsiniz yapabilirsiniz.

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]) 
İşte

(DHCP aracılığıyla) otomatik olarak bir IP adresi elde dönmek için yapılması gerekenler::

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() 

Not: Burada donanım aygıtına Konuşacak bir şeyler nasıl yapılandırılacağı bir üretim komut sen EnableStatic(), SetGateways() ve EnableDHCP() tarafından döndürülen değerleri kontrol etmelisiniz. ('0' başarı anlamına gelir, '1' yeniden başlatma ve diğer değerler, yöntem adları tarafından bağlanan MSDN sayfalarında açıklanmaktadır. Not: EnableStatic() ve SetGateways() için, hata kodları listeler olarak döndürülür).

Win32NetworkAdapterConfiguration sınıfının tüm işlevleri hakkında tam bilgi de found on MSDN olabilir.

Not: Bunu Python 2.7 ile test ettim, ancak Python 3 için PyWIn32 ve WMI modülleri bulunduğundan, "u" harfini dize değişmezlerinden önce kaldırarak Python 3 için çalışabilmeniz gerektiğini düşünüyorum.

3

Sen başlatmak için altişlem modülünü kullanabilirsiniz

netsh interface ip set address [params] 

Başlat Bu komut ile (olmadan [parametreler]) nasıl kullanılacağını biraz yardım almak için. Sonra

import subprocess 
subprocess.call("netsh interface ip set address ....".split()) 
İlgili konular