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' -- http://mail.python.org/mailman/listinfo/python-list