2011-09-28 16 views
10

मैं अपने कंप्यूटर का उपयोग ईथरनेट के माध्यम से हार्डवेयर के टुकड़े के साथ संवाद करने के लिए करता हूं। इस डिवाइस के साथ संवाद करने के लिए मैंने अपना आईपी 1 9 2 168 0 11, सबनेट मास्क 255 255 255 0 पर सेट किया, और आईपीवी 4 के लिए डिफ़ॉल्ट गेटवे 1 9 2 168 0 1 पर सेट किया। इंटरनेट का उपयोग करने के लिए, मैं नियंत्रण कक्ष के माध्यम से "स्वचालित रूप से एक आईपी पता प्राप्त करें" चुनता हूं।विंडोज़ पर आईपी एड्रेस बदलने के लिए स्क्रिप्ट

मुझे एक ऐसी स्क्रिप्ट चाहिए जो मुझे जल्दी से एक या अन्य ईथरनेट सेटिंग - हार्डवेयर या इंटरनेट चुनने की अनुमति दे।

मैं प्रोग्राम ज्यादातर पाइथन में लेकिन शायद बैच फ़ाइल समाधान है।

धन्यवाद,

बैरी।

+0

संबंधित प्रश्न: http://stackoverflow.com/questions/83756/how-to-programmatically-enable-disable-network-interfaces-windows-xp – tzot

उत्तर

16

आप अजगर 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]) 

यहाँ (डीएचसीपी के माध्यम से) स्वचालित रूप से एक आईपी पता प्राप्त करने के लिए वापस लौटने के लिए कैसे है:

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' का अर्थ है रीबूट आवश्यक है और विधि मानों से जुड़े एमएसडीएन पृष्ठों पर अन्य मानों का वर्णन किया गया है। नोट: EnableStatic() और SetGateways() के लिए, त्रुटि कोड सूचियों के रूप में लौटाए जाते हैं)।

Win32NetworkAdapter कॉन्फ़िगरेशन कक्षा की सभी कार्यक्षमताओं पर पूरी जानकारी found on MSDN भी हो सकती है।

नोट: मैंने पायथन 2.7 के साथ इसका परीक्षण किया, लेकिन PyWon32 और WMI मॉड्यूल पाइथन 3 के लिए उपलब्ध हैं, मुझे विश्वास है कि आपको स्ट्रिंग अक्षर से पहले "यू" को हटाकर पाइथन 3 के लिए यह काम करने में सक्षम होना चाहिए।

3

आप शुरू करने के लिए उपप्रक्रिया मॉड्यूल का उपयोग कर सकते हैं

netsh interface ip set address [params] 

प्रारंभ इस कमांडलाइन से (बिना [पैरामीटर]) कुछ मदद कि यह कैसे उपयोग करने के लिए मिलता है। तो फिर तुम

import subprocess 
subprocess.call("netsh interface ip set address ....".split()) 
संबंधित मुद्दे