我用我的電腦通過以太網與硬件通信。爲了與這個設備進行通信,我將我的ip設置爲192 168 0 11,子網掩碼設置爲255 255 255 0,默認網關設置爲192 168 0 1。要使用互聯網,我選擇通過控制面板「自動獲取IP地址」。在windows上更改ip地址的腳本
我想要一個腳本,允許我快速選擇一個或其他以太網設置 - 硬件或互聯網。
我主要在python程序,但也許有一個批處理文件的解決方案。
謝謝,
巴里。
我用我的電腦通過以太網與硬件通信。爲了與這個設備進行通信,我將我的ip設置爲192 168 0 11,子網掩碼設置爲255 255 255 0,默認網關設置爲192 168 0 1。要使用互聯網,我選擇通過控制面板「自動獲取IP地址」。在windows上更改ip地址的腳本
我想要一個腳本,允許我快速選擇一個或其他以太網設置 - 硬件或互聯網。
我主要在python程序,但也許有一個批處理文件的解決方案。
謝謝,
巴里。
您可以使用Python WMI module做到這一點(運行這些腳本之前安裝PyWin32 extensions和WMI模塊)。下面是如何配置的東西去跟硬件設備:
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])
以下是如何恢復到自動獲取IP地址(通過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()
注:在生產腳本你應該檢查EnableStatic(),SetGateways()和EnableDHCP()返回的值。 ('0'表示成功,'1'表示需要重新啓動,其他值在方法名稱鏈接的MSDN頁面上進行描述注意:對於EnableStatic()和SetGateways(),錯誤代碼以列表形式返回。
有關Win32NetworkAdapterConfiguration類的所有功能的完整信息也可以是found on MSDN。
注意:我用Python 2.7測試了這個,但由於PyWIn32和WMI模塊可用於Python 3,我相信你應該能夠通過從字符串文字之前刪除「u」來獲得Python 3的工作。
可以使用子模塊開始
netsh interface ip set address [params]
開始這個從命令行(無[PARAMS])得到一些幫助如何使用它。然後,你可以做
import subprocess
subprocess.call("netsh interface ip set address ....".split())
相關問題:http://stackoverflow.com/questions/83756/how-to-programmatically-enable-disable-network-interfaces-windows-xp – tzot