Ubuntu любит помещать ваше локальное неквалифицированное имя хоста в / etc / hosts с IP-адресом обратной петли, например:
127.0.1.1 ubuntu-pc
, что затрудняет получение вашего реального IP и домена.
Одним из решений является использование этого ответа для получения вашего реального (не петлевого) IP-адреса, поиска этого IP-адреса и использования его домена:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
myip = s.getsockname()[0]
s.close()
fqdn = socket.gethostbyaddr(myip)[0]
domain = fqdn.split('.', 1)[1]
print 'myip:', myip
print 'fqdn:', fqdn
print 'domain:', domain
, который выдает что-то похожее на:
myip: 192.168.1.33
fqdn: fred-pc.my.domain
domain: my.domain