Это очень похоже на ранее опубликованные ответы, но я не смог найти ни одного с таким использованием звонков. Это то, что я использую для ipv4. Для ipv6 измените "." в ':' в
import socket
print next(i[4][0] for i in socket.getaddrinfo(
socket.gethostname(), 80) if '127.' not in i[4][0] and '.' in i[4][0]);"