On Wed, Aug 24, 2016 at 9:48 AM Bishop Bettini <bis...@php.net> wrote:

> Also, it may be beneficial to elaborate on the scenarios where
>> socket_addrinfo is easier to use than socket_* and friends (getservbyname
>> for example) and the costs of that ease (eg, behind the scenes DNS queries).
>
>
Most of the get*by* network related functions are all pretty much wrapped
around IPv4 at the transport layer, for example gethostbyname.
Specifically[1] there are comments that explain how to implement in
userland a gethostbyname6 for IPv6 related lookups.

getaddrinfo, and it's inverse getnameinfo, are more modern network
interfaces to POSIX that allow us to develop with (generally) transport
layer agnostic.

As to a specific example case: if I accept user input to connect to a
remote site (bear with me here on security implications), I shouldn't need
to know if the remote site is v4, or v6 specific.  Maybe we're doing a
down-detector site and the user input was ipv6.facebook.com, which has no A
record, but does have a AAAA record.  It's cleaner and easier to just let
getaddrinfo figure it out for you.

--
Dave

[1] - http://php.net/manual/en/function.gethostbyname.php#70936

Reply via email to