Bạn có thể sử dụng Python WMI module để làm điều này (cài đặt PyWin32 extensions và các mô-đun WMI trước khi chạy các kịch bản). Dưới đây là làm thế nào để cấu hình điều cần nói chuyện với các thiết bị phần cứng:
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])
ở đây là làm thế nào để trở lại gán địa chỉ IP tự động (thông qua 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()
Lưu ý: trong một kịch bản sản xuất bạn nên kiểm tra các giá trị được trả lại bởi EnableStatic(), SetGateways() và EnableDHCP(). ('0' có nghĩa là thành công, '1' có nghĩa là khởi động lại cần thiết và các giá trị khác được mô tả trên các trang MSDN liên kết với tên phương thức. Ghi chú: cho EnableStatic() và SetGateways(), mã lỗi được trả về dưới dạng danh sách).
Thông tin đầy đủ về tất cả chức năng của lớp Win32NetworkAdapterConfiguration cũng có thể là found on MSDN.
Lưu ý: Tôi đã thử nghiệm điều này với Python 2.7, nhưng khi mô-đun PyWIn32 và WMI có sẵn cho Python 3, tôi tin rằng bạn có thể làm việc này cho Python 3 bằng cách xóa "u" từ trước chuỗi ký tự.
Câu hỏi liên quan: http://stackoverflow.com/questions/83756/how-to-programmatically-enable-disable-network-interfaces-windows-xp – tzot