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