REALHOSTNAME(3)

NAME
realhostname - convert an IP number to the real host name

LIBRARY
libutil

SYNOPSIS
#include <libutil.h>
int
realhostname(char *host, size_t hsize, const struct in_addr *ip);

DESCRIPTION
The function realhostname() converts ip to the corresponding host name. This is done by resolving ip to a host name and then ensuring that the host name resolves back to ip.

host must point to a buffer of at least hsize bytes, and will always be written to by this function.

If the name resolution does not work both ways or if the host name is longer than hsize bytes, inet_ntoa(3) is used to convert ip to an ASCII form.

If the string written to host is hsize bytes long, host will not be NUL terminated.

RETURN VALUES
The realhostname() function will return one of the following constants which are defined in <libutil.h>:

HOSTNAME_FOUND
    A valid host name was found.

HOSTNAME_INCORRECTNAME
    A host name was found, but it did not resolve back to the passed ip. host now contains the numeric value of ip.

HOSTNAME_INVALIDADDR
    ip could not be resolved. host now contains the numeric value of ip.

HOSTNAME_INVALIDNAME
    A host name was found, but it could not be resolved back to any ip number. host now contains the numeric value of ip.

SEE ALSO
gethostbyaddr(3), gethostbyname(3), inet_ntoa(3), realhostname_sa(3)

HISTORY
The realhostname() function first appeared in FreeBSD 3.2.