getnetbyaddr_r - Linux
Overview
The getnetbyaddr_r
command returns the name of the network corresponding to the specified addr
. It is commonly used in networking applications to identify and access network resources.
Syntax
getnetbyaddr_r(addr, buf, buflen, result, h_errnop)
Options/Flags
Required Arguments:
- addr: the address to get the network name for
Buffers:
- buf: a pointer to a buffer to store the network name
- buflen: the size of the buffer
Return Values:
- result: a pointer to the resulting network entry structure or
NULL
if not found - h_errnop: a pointer to an integer that contains the error code
Examples
Simple example:
#include <stdio.h>
#include <netdb.h>
int main() {
struct hostent *result;
char buf[256];
int h_errnop;
if (getnetbyaddr_r("192.168.1.1", buf, sizeof(buf), &result, &h_errnop) != 0) {
fprintf(stderr, "Error: %s\n", hstrerror(h_errnop));
return 1;
}
printf("Network name: %s\n", result->h_name);
return 0;
}
Complex example:
#include <stdio.h>
#include <netdb.h>
int main() {
char addr[] = "192.168.1.0";
struct netent *result;
char buf[256];
int h_errnop;
while ((result = getnetbyaddr_r(addr, buf, sizeof(buf), &h_errnop)) != NULL) {
printf("Network: %s (%s)\n", result->n_name, result->n_addr);
addr += 4;
}
return 0;
}
Common Issues
-
h_errnop: will be set to one of the following error codes if an error occurs:
NO_DATA
: no network entry exists for the specified addressTRY_AGAIN
: a temporary error occurred and the operation should be retried
Integration
getnetbyaddr_r
can be combined with other networking commands such as gethostbyname_r
to resolve IP addresses and hostnames.
Related Commands
gethostbyname_r
: resolves a hostname to an IP addressgetservbyname_r
: resolves a service name to a port number