K
kode4u
How to use python get my windows box's ip setting type? Dynamic ip, or
static ip?
If it's static ip, what's the exact value?
static ip?
If it's static ip, what's the exact value?
Here's one way:kode4u said:How to use python get my windows box's ip setting type? Dynamic ip, or
static ip?
If it's static ip, what's the exact value?
Duncan said:Here's one way:kode4u said:How to use python get my windows box's ip setting type? Dynamic ip, or
static ip?
If it's static ip, what's the exact value?
def ipinfo(interface="Local Area Connection"):
dhcpenabled = False
staticip = None
subnetmask = None
for l in os.popen('netsh interface ip show address "%s"' % interface):
l = l.strip()
if l.startswith('DHCP enabled'):
dhcpenabled = l.endswith('Yes')
if l.startswith("IP Address"):
staticip = l.rsplit(None,1)[-1]
if l.startswith("SubnetMask"):
subnetmask = l.rsplit(None,1)[-1]
return dhcpenabled, staticip, subnetmask
(False, '192.168.126.1', '255.255.255.0')
kode4u said:How to use python get my windows box's ip setting type? Dynamic ip, or
static ip?
If it's static ip, what's the exact value?
Roger said:kode4u said:How to use python get my windows box's ip setting type? Dynamic ip, or
static ip?
If it's static ip, what's the exact value?
You can use WMI to list properties of your network adapter(s):
import win32com.client
wmi=win32com.client.GetObject('winmgmts:')
adapters=wmi.InstancesOf('Win32_NetworkAdapterConfiguration')
for adapter in adapters:
print adapter.Properties_['Caption'], adapter.Properties_['DhcpEnabled'], adapter.Properties_['IpAddress']
Roger
kode4u said:There are some errors in result:... print adapter.Properties_['Caption'],
adapter.Properties_['DhcpEnabled'], adapter.Properties_['IpAddress']
...
[00000001] Realtek RTL8139 Family PCI Fast Ethernet NIC True
(u'169.254.52.213',)
Traceback (most recent call last):
File "<input>", line 2, in <module>
File "C:\Python25\Lib\site-packages\win32com\client\dynamic.py", line
187, in __str__
return str(self.__call__())
UnicodeEncodeError: 'ascii' codec can't encode characters in position
15-19: ordinal not in range(128)
How to deal with it?
Roger said:kode4u said:How to use python get my windows box's ip setting type? Dynamic ip, or
static ip?
If it's static ip, what's the exact value?
You can use WMI to list properties of your network adapter(s):
import win32com.client
wmi=win32com.client.GetObject('winmgmts:')
adapters=wmi.InstancesOf('Win32_NetworkAdapterConfiguration')
for adapter in adapters:
print adapter.Properties_['Caption'], adapter.Properties_['DhcpEnabled'], adapter.Properties_['IpAddress']
Roger
Roger said:This means the unicode object contains characters that
can't be represented in the default encoding. Try encoding it
in another character set, something like
adapter.Properties_['Caption'].Value.encode('mbcs')
(you may need to use a different codec)
Roger
kode4u said:There are some errors in result:... print adapter.Properties_['Caption'],import win32com.client
wmi=win32com.client.GetObject('winmgmts:')
adapters=wmi.InstancesOf('Win32_NetworkAdapterConfiguration')
for adapter in adapters:
adapter.Properties_['DhcpEnabled'], adapter.Properties_['IpAddress']
...
[00000001] Realtek RTL8139 Family PCI Fast Ethernet NIC True
(u'169.254.52.213',)
Traceback (most recent call last):
File "<input>", line 2, in <module>
File "C:\Python25\Lib\site-packages\win32com\client\dynamic.py", line
187, in __str__
return str(self.__call__())
UnicodeEncodeError: 'ascii' codec can't encode characters in position
15-19: ordinal not in range(128)
How to deal with it?
Roger said:How to use python get my windows box's ip setting type? Dynamic ip, or
static ip?
If it's static ip, what's the exact value?
You can use WMI to list properties of your network adapter(s):
import win32com.client
wmi=win32com.client.GetObject('winmgmts:')
adapters=wmi.InstancesOf('Win32_NetworkAdapterConfiguration')
for adapter in adapters:
print adapter.Properties_['Caption'], adapter.Properties_['DhcpEnabled'], adapter.Properties_['IpAddress']
Roger
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.