On Fri, May 1, 2015 at 7:42 PM,  <the.lo...@gmail.com> wrote:
> Hi all,
>
> Given the following code:
>
> import ipaddress
> import socket
>
> ip = ipaddress.ip_address(mystring)
> sock_family = ip.????
> socket = socket.socket(sock_family, socket.SOCK_STREAM)
>
> Am I crazy or is this undoable?
>
> sock.AF_INET == 2
> sock.AF_INET6 == 10
> ip.version == 4 or 6

Are you trying to look up a name to get an address? Or just look up an
address? The easiest way would be to use a ternary if:

sock_family = sock.AF_INET if ip.version == 4 else sock.AF_INET6

But you may find it convenient to use a dedicated function for
establishing a connection, which could look up an AAAA or A record for
a name, then proceed through all addresses, attempting connections in
turn. I'm fairly sure one exists in Python, but I can't right now
remember the name.

ChrisA
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to