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 bro-
       ken-out fields from a line in /etc/hosts.  If the local name server  is
       not running, these routines 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
		    compatibility.

       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) unless the name contains a dot (".").  If	the name  con-
       tains  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  ad-
       dresses 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(),	 gethostbyname2(),  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 in-
       dicated 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 un-
       known host.  errno can have the following values:

	     NETDB_INTERNAL    This  indicates	an  internal  error in the li-
			       brary, unrelated	to the network	or  name  ser-
			       vice.   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 re-
			       sponse 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
			       expect.

	     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 domain	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.0>

home | help