Finding Your Own Name and Address
Credit: Luther Blissett
Problem
You want to find your own fully qualified hostname and IP address.
Solution
The socket module has functions that help with
this task:
import socket myname = socket.getfqdn(socket.gethostname( )) myaddr = socket.gethostbyname(myname)
This gives you your primary, fully qualified domain name and IP address. You might have other names and addresses, and if you want to find out about them, you can do the following:
thename, aliases, addresses = socket.gethostbyaddr(myaddr) print 'Primary name for %s (%s): %s' % (myname, myaddr, thename) for alias in aliases: print "AKA", alias for address in addresses: print "address:", address
Discussion
gethostname
is specifically useful only to find out your hostname, but the other
functions used in this recipe are for more general use.
getfqdn
takes a domain name that may or may not be fully qualified and
normalizes it into the corresponding fully qualified domain name
(FQDN) for a hostname. gethostbyname can accept
any valid hostname and look up the corresponding IP address (if name
resolution is working correctly, the network is up, and so on), which
it returns as a string in dotted-quad form (such as
'1.2.3.4').
gethostbyaddr accepts a valid IP address as a string in dotted-quad form (again, if reverse DNS lookup is working correctly on your machine, the network is up, and so on) and returns a tuple of three items. The first item is a string, the primary name by which the host at that ...