# getipnodebyname

## NAME



           getipnodebyname, getipnodebyaddr, freehostent - get network
           hostnames and addresses
    


## LIBRARY



           Standard C library (_libc_ , _-lc_)
    


## SYNOPSIS



           **#include <sys/types.h>**
           **#include <sys/socket.h>**
           **#include <netdb.h>**
    
           **[[deprecated]] struct hostent *getipnodebyname(const char ***_name_**, int** _af_**,**
                                                       **int** _flags_**, int ***_error_num_**);**
           **[[deprecated]] struct hostent *getipnodebyaddr(** size_t size;
                                                       **const void** _addr_**[**_size_**],**
                                                       **size_t** _size_**, int** _af_**,**
                                                       **int ***_error_num_**);**
           **[[deprecated]] void freehostent(struct hostent ***_ip_**);**
    


## DESCRIPTION



           These functions are deprecated (and unavailable in glibc).  Use
           getaddrinfo(3) and getnameinfo(3) instead.
    
           The **getipnodebyname**() and **getipnodebyaddr**() functions return the
           names and addresses of a network host.  These functions return a
           pointer to the following structure:
    
               struct hostent {
                   char  *h_name;
                   char **h_aliases;
                   int    h_addrtype;
                   int    h_length;
                   char **h_addr_list;
               };
    
           These functions replace the gethostbyname(3) and gethostbyaddr(3)
           functions, which could access only the IPv4 network address
           family.  The **getipnodebyname**() and **getipnodebyaddr**() functions can
           access multiple network address families.
    
           Unlike the **gethostby** functions, these functions return pointers to
           dynamically allocated memory.  The **freehostent**() function is used
           to release the dynamically allocated memory after the caller no
           longer needs the _hostent_ structure.
    
       **getipnodebyname() arguments**
           The **getipnodebyname**() function looks up network addresses for the
           host specified by the _name_ argument.  The _af_ argument specifies
           one of the following values:
    
           **AF_INET**
                  The _name_ argument points to a dotted-quad IPv4 address or a
                  name of an IPv4 network host.
    
           **AF_INET6**
                  The _name_ argument points to a hexadecimal IPv6 address or a
                  name of an IPv6 network host.
    
           The _flags_ argument specifies additional options.  More than one
           option can be specified by bitwise OR-ing them together.  _flags_
           should be set to 0 if no options are desired.
    
           **AI_V4MAPPED**
                  This flag is used with **AF_INET6** to request a query for IPv4
                  addresses instead of IPv6 addresses; the IPv4 addresses
                  will be mapped to IPv6 addresses.
    
           **AI_ALL** This flag is used with **AI_V4MAPPED** to request a query for
                  both IPv4 and IPv6 addresses.  Any IPv4 address found will
                  be mapped to an IPv6 address.
    
           **AI_ADDRCONFIG**
                  This flag is used with **AF_INET6** to further request that
                  queries for IPv6 addresses should not be made unless the
                  system has at least one IPv6 address assigned to a network
                  interface, and that queries for IPv4 addresses should not
                  be made unless the system has at least one IPv4 address
                  assigned to a network interface.  This flag may be used by
                  itself or with the **AI_V4MAPPED** flag.
    
           **AI_DEFAULT**
                  This flag is equivalent to **(AI_ADDRCONFIG | AI_V4MAPPED)**.
    
       **getipnodebyaddr() arguments**
           The **getipnodebyaddr**() function looks up the name of the host whose
           network address is specified by the _addr_ argument.  The _af_
           argument specifies one of the following values:
    
           **AF_INET**
                  The _addr_ argument points to a _struct in_addr_ and _size_ must
                  be set to _sizeof(struct in_addr)_.
    
           **AF_INET6**
                  The _addr_ argument points to a _struct in6_addr_ and _size_ must
                  be set to _sizeof(struct in6_addr)_.
    


## RETURN VALUE



           NULL is returned if an error occurred, and _error_num_ will contain
           an error code from the following list:
    
           **HOST_NOT_FOUND**
                  The hostname or network address was not found.
    
           **NO_ADDRESS**
                  The domain name server recognized the network address or
                  name, but no answer was returned.  This can happen if the
                  network host has only IPv4 addresses and a request has been
                  made for IPv6 information only, or vice versa.
    
           **NO_RECOVERY**
                  The domain name server returned a permanent failure
                  response.
    
           **TRY_AGAIN**
                  The domain name server returned a temporary failure
                  response.  You might have better luck next time.
    
           A successful query returns a pointer to a _hostent_ structure that
           contains the following fields:
    
           _h_name_ This is the official name of this network host.
    
           _h_aliases_
                  This is an array of pointers to unofficial aliases for the
                  same host.  The array is terminated by a null pointer.
    
           _h_addrtype_
                  This is a copy of the _af_ argument to **getipnodebyname**() or
                  **getipnodebyaddr**().  _h_addrtype_ will always be **AF_INET** if
                  the _af_ argument was **AF_INET**.  _h_addrtype_ will always be
                  **AF_INET6** if the _af_ argument was **AF_INET6**.
    
           _h_length_
                  This field will be set to _sizeof(struct in_addr)_ if
                  _h_addrtype_ is **AF_INET** , and to _sizeof(struct in6_addr)_ if
                  _h_addrtype_ is **AF_INET6**.
    
           _h_addr_list_
                  This is an array of one or more pointers to network address
                  structures for the network host.  The array is terminated
                  by a null pointer.
    


## STANDARDS



           None.
    


* * *