Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
GETIPNODEBYNAME(3)	     Library Functions Manual	      GETIPNODEBYNAME(3)

NAME
     getipnodebyname, getipnodebyaddr -- get network host entry
     freehostent -- free network host entry

SYNOPSIS
     #include <netdb.h>

     struct hostent *
     getipnodebyname(const char *name, int af, int flags, int *error);

     struct hostent *
     getipnodebyaddr(const void *addr, size_t len, int af, int *error);

     void
     freehostent(struct hostent *he);

DESCRIPTION
     Getipnodebyname(), and getipnodebyaddr() each return a pointer to a hostent
     structure	(see below) describing an internet host referenced by name or by
     address, as the function names indicate.  This  structure	contains  either
     the  information obtained from the name server, or broken-out fields from a
     line in /etc/hosts.  If the local name server is not  running,  these  rou-
     tines do a lookup in /etc/hosts.

	   struct  hostent {
		   char    *h_name;	   /* official name of host */
		   char    **h_aliases;    /* alias list */
		   int	   h_addrtype;	   /* host address type */
		   int	   h_length;	   /* length of address */
		   char    **h_addr_list;  /* list of addresses from name server */
	   };

	   #define h_addr  h_addr_list[0]  /* address, for backward compatibility */

     The members of this structure are:

     h_name	  Official name of the host.

     h_aliases	  A zero-terminated array of alternate names for the host.

     h_addrtype   The type of address being returned.

     h_length	  The length, in bytes, of the address.

     h_addr_list  A  zero-terminated  array  of  network addresses for the host.
		  Host addresses are returned in network byte order.

     h_addr	  The first address in h_addr_list; this is for backward compat-
		  ibility.

     This structure should be freed after use by calling freehostent().

     When using the nameserver, getiphostbyaddr() will search for the named host
     in each parent domain given in the "search" directive of resolv.conf(5) un-
     less the name contains a dot (".").  If the name contains no  dot,  and  if
     the  environment  variable  HOSTALIASES contains the name of an alias file,
     the alias file will first be searched for an alias matching the input name.
     See hostname(7) for the domain search procedure and the alias file format.

     Getiphostbyaddr() can be told to look for IPv4 addresses, IPv6 addresses or
     both IPv4 and IPv6.  If IPv4 addresses only are to be  looked  up	then  af
     should be set to AF_INET, otherwise it should be set to AF_INET6.

     There are three flags that can be set

     AI_V4MAPPED    Return  IPv4 addresses if no IPv6 addresses are found.  This
		    flag is ignored unless af is AF_INET6.

     AI_ALL	    Return IPv4 addresses as well IPv6 addresses if  AI_V4MAPPED
		    is set.  This flag is ignored unless af is AF_INET6.

     AI_ADDRCONFIG  Only  return  addresses of a given type if the system has an
		    active interface with that type.

     Also AI_DEFAULT is defined to be (AI_V4MAPPED|AI_ADDRCONFIG).

     Getipnodebyaddr() will lookup IPv4 mapped and compatible addresses  in  the
     IPv4 name space and IPv6 name space

     Freehostent()  frees  the	hostent structure allocated be getipnodebyname()
     and getipnodebyaddr().  The structures returned by  gethostbyname(),  geth-
     ostbyname2(),  gethostbyaddr()  and  gethostent()	should	not be passed to
     freehostent() as they are pointers to static areas.

ENVIRONMENT
     HOSTALIASES    Name of file containing (host alias, full hostname) pairs.

FILES
     /etc/hosts     See hosts(5).

DIAGNOSTICS
     Error return status from getipnodebyname() and getipnodebyaddr()  is  indi-
     cated  by return of a null pointer.  In this case error may then be checked
     to see whether this is a temporary failure or an invalid or  unknown  host.
     errno can have the following values:

	   NETDB_INTERNAL    This  indicates  an  internal error in the library,
			     unrelated to the network or  name	service.   errno
			     will be valid in this case; see perror.

	   HOST_NOT_FOUND    No such host is known.

	   TRY_AGAIN	     This  is  usually	a temporary error and means that
			     the local server did not receive a response from an
			     authoritative server.  A retry at some  later  time
			     may succeed.

	   NO_RECOVERY	     Some  unexpected  server  failure	was encountered.
			     This is a non-recoverable error, as one  might  ex-
			     pect.

	   NO_ADDRESS	     The requested name is valid but does not have an IP
			     address; this is not a temporary error.  This means
			     that the name is known to the name server but there
			     is  no  address associated with this name.  Another
			     type of request to the name server using  this  do-
			     main  name will result in an answer; for example, a
			     mail-forwarder may be registered for this domain.

SEE ALSO
     hosts(5), hostname(7), resolver(3), resolver(5), gethostbyname(3), RFC2553.

4th Berkeley Distribution      September 17, 1999	      GETIPNODEBYNAME(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=getipnodebyname&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help