import socket
import fcntl
import struct


def get_ip_address(dev="eth0"):
    """Retrieves the IP address via SIOCGIFADDR - only tested on Linux."""
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        return socket.inet_ntoa(fcntl.ioctl(s.fileno(),0x8915,struct.pack('256s', dev[:15]))[20:24])
    except:
        return None