Many systems come with a database that records a list of networks known to the system developer. This is usually kept either in the file `/etc/networks' or in an equivalent from a name server. This data base is useful for routing programs such as route
, but it is not useful for programs that simply communicate over the network. We provide functions to access this data base, which are declared in `netdb.h'.
char *n_name
char **n_aliases
int n_addrtype
AF_INET
for Internet networks.
unsigned long int n_net
Use the getnetbyname
or getnetbyaddr
functions to search the networks database for information about a specific network. The information is returned in a statically-allocated structure; you must copy the information if you need to save it.
getnetbyname
function returns information about the network named name. It returns a null pointer if there is no such network.
getnetbyaddr
function returns information about the network of type type with number net. You should specify a value of AF_INET
for the type argument for Internet networks.
getnetbyaddr
returns a null pointer if there is no such network.
You can also scan the networks database using setnetent
, getnetent
, and endnetent
. Be careful in using these functions, because they are not reentrant.
If the stayopen argument is nonzero, this sets a flag so that subsequent calls to getnetbyname
or getnetbyaddr
will not close the database (as they usually would). This makes for more efficiency if you call those functions several times, by avoiding reopening the database for each call.