NAME
    Socket::More::Lookup - System DNS lookup routines

SYNOPSIS
      use Socket::More::Lookup;
      use Socket::More::Constants;

      # Converte a host name to one or more address structures
      my $res=getaddrinfo( "www.google.com", 80, {family=>AF_INET}, my @results);
      die gai_strerror($!) unless $res;

      # Convert an addres structure to a hostname and port
      my $res=getnameinfo($addr, my $host="", my $port="", $flags);
      die gai_strerror($!) unless $res;

DESCRIPTION
    Bindings to getaddrinfo, getnameinfo, gai_strerror with calling a
    convention more inline with the C library, and Perl's 'sys*'
    subroutines. That is, the return value of get*info is 'true' value on
    success and "undef" on failure, with $! containing the error code.

    The actual results are stored arguments, not returned as a combined
    err/results list like the Socket implementation.

    This module is part of Socket::More but exists as a standalone package
    for better reuse and smaller memory footprint

API
  getaddrinfo
      my $res=getaddrinfo($host, $port, $hints, @results)

    Calls the "getaddrinfo" library function to resolve the address
    information of $host. The $port variable is filled into the resulting
    address structure.

    The address structures returned are influenced by the $hints hash with
    keys flags, family, type and protocal. Please refer to the man page of
    getaddrinfo for details.

    Results, if any are are stored in @results. Each entry in the results
    array is a hash with the keys family, type, protocal, addr and
    "cannonname". Please refer to the main page of getaddrinfo for details.

    Returns true on success, on "undef" on failure. In the later case $! is
    set to the numeric error code, which can then be converted to a string
    via "gai_strerror".

  getnaminfo
      my $res=getnameinfo($sock_addr, $host, $port);
      my $res=getnameinfo($sock_addr, my $host="", my $port="",$flags);

    Calls the "getnameinfo"library function to convert a known address
    structure to a host and port. The resulting hostname and port number are
    stored in the arguments $host and $port. This must be defined string and
    writable variables.

    The output is influenced by the $flags argument. Please refer to the man
    page of getnameinfo for details.

    Returns true on success, on undef on failure. In the later case $! is
    set to the numeric error code, which can then be converted to a string
    via "gai_strerror"

  gai_strerror
      my $string=gai_strerror($code)

    Converts a numerical error code returned from either getaddrinfo or
    getnameinfo into a human readable string. Please refer to man page of
    gai_strerror for more details

AUTHOR
    Ruben Westerberg, <drclaw@mac.com>

REPOSITORTY and BUGS
    Please report any bugs via git hub:
    <http://github.com/drclaw1394/perl-socket-more-lookup>

COPYRIGHT AND LICENSE
    Copyright (C) 2023 by Ruben Westerberg

    This library is free software; you can redistribute it and/or modify it
    under the same terms as Perl or the MIT license.

DISCLAIMER OF WARRANTIES
    THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
    WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.