Baz*_*Baz 12 python windows batch-file ipv4 windows-7
我用我的电脑通过以太网与一块硬件进行通信.要与此设备通信,我将ip设置为192 168 0 11,将子网掩码设置为255 255 255 0,将默认网关设置为192 168 0 1 for IPv4.要使用互联网,我选择"通过控制面板自动获取IP地址".
我想要一个脚本,允许我快速选择一个或另一个以太网设置 - 硬件或互联网.
我主要在python中编程,但也许有一个批处理文件解决方案.
谢谢,
巴里.
msa*_*ers 17
您可以使用Python WMI模块执行此操作(在运行这些脚本之前安装PyWin32扩展和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])
Run Code Online (Sandbox Code Playgroud)
以下是如何恢复自动获取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()
Run Code Online (Sandbox Code Playgroud)
注意:在生产脚本中,您应该检查EnableStatic(),SetGateways()和EnableDHCP()返回的值.('0'表示成功,'1'表示需要重新启动,其他值在通过方法名称链接的MSDN页面上描述.注意:对于EnableStatic()和SetGateways(),错误代码将作为列表返回).
有关Win32NetworkAdapterConfiguration类的所有功能的完整信息也可以在MSDN上找到.
注意:我使用Python 2.7对此进行了测试,但由于PyWIn32和WMI模块可用于Python 3,我相信您应该能够通过从字符串文字之前删除"u"来使其适用于Python 3.
您可以使用子流程模块来启动
netsh interface ip set address [params]
Run Code Online (Sandbox Code Playgroud)
从命令行启动此命令(不带[params])以获取有关如何使用它的帮助。那你可以做
import subprocess
subprocess.call("netsh interface ip set address ....".split())
Run Code Online (Sandbox Code Playgroud)
更新:
对于那些忙于rtfm的人,
netsh interface ip set address lan static 192.168.0.100 255.255.255.0
netsh interface ip set address lan dhcp
Run Code Online (Sandbox Code Playgroud)
这lan是要配置的网络接口的名称,192.168.0.100是IP地址,255.255.255.0是网络掩码。第一个命令设置静态地址,第二个命令还原为dhcp。
| 归档时间: |
|
| 查看次数: |
33145 次 |
| 最近记录: |