It seems that the "shortcut" of using the `AF_INET6` address family for
both IPv4 and IPv6 address does not always work. As such, we have to
determine the correct family for the address by calling `getaddrinfo`.
In order to indicate to external modules that this module contains type
hints, it must include a `py.typed` file. Single-file module
distributions cannot include other files, so in order to distribute the
`py.typed` file, this module has to be distributed as a package.