Search code examples
pythondnsipv6

Python resolve a host name with IPv6 address


I wonder if there is a way to use python to resolve a hostname that resolves only in ipv6 and/or for a hostname that resolves both in ipv4 and ipv6?

socket.gethostbyname() and socket.gethostbyname_ex()does not work for ipv6 resolution.

A dummy way to do that is to run actual linux host command and parse the results. Is there any better way to do that?

Thanks,


Solution

  • socket.getaddrinfo supports IPv6. You just need to set family to AF_INET6.

    socket.getaddrinfo("example.com", None, socket.AF_INET6)