![]() |
![]() |
![]() |
Get a network host entry
#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> struct hostent* gethostbyaddr_r( const void* addr, size_t length, int type, struct hostent* result, char* buffer, int buflen, int* h_errnop );
libsocket
The gethostbyaddr_r() function is a thread-safe version of gethostbyaddr(). This function gets the network host entry for the host specified by addr. The addr argument is the network address of the specified network family, type. The buffer for addr is at least length bytes.
If you need to convert a text-based address into the format necessary for use as gethostbyaddr_r()'s addr, see inet_pton().
The host entry is returned in the struct hostent pointed to by result. During the operation, buffer (and char buffer of at least buflen bytes) is used to store host database entries; buffer should be large enough to hold all of the data associated with the host entry. A 2K buffer is usually more than enough; a 256-byte buffer is safe in most cases.
The int that's pointed to by h_errnop is set to an herrno value if an error occurs.
A pointer to result, or NULL if an error occurs.
If an error occurs, the int pointed to by h_errnop is set to:
Safety: | |
---|---|
Cancellation point | Yes |
Interrupt handler | No |
Signal handler | No |
Thread | Yes |
gethostbyaddr(), gethostbyname(), gethostbyname_r(), inet_ntop(), inet_pton()
/etc/hosts, /etc/resolv.conf in the Utilities reference
![]() |
![]() |
![]() |