Windows getting local ip address
Arne Ludwig
arne at citde.net
Wed Mar 22 11:09:33 EST 2006
The second solution can give really weird results though, e.g. on my
Linux system I get:
>>> gethostbyaddr(gethostname())
('linux.site', ['linux'], ['127.0.0.2'])
A more flexible but potentially unportable way would be:
>>> import socket
>>> import fcntl
>>> import struct
>>>
>>> def get_ip_address(ifname):
... s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
... return socket.inet_ntoa(fcntl.ioctl(
... s.fileno(),
... 0x8915, # SIOCGIFADDR
... struct.pack('256s', ifname[:15])
... )[20:24])
...
>>> get_ip_address('eth0')
'192.168.0.174'
More information about the Python-list
mailing list