Networks Database
=================
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 database, which are declared in `netdb.h'.
- Data Type: struct netent
This data type is used to represent information about entries in
the networks database. It has the following members:
`char *n_name'
This is the "official" name of the network.
`char **n_aliases'
These are alternative names for the network, represented as a
vector of strings. A null pointer terminates the array.
`int n_addrtype'
This is the type of the network number; this is always equal
to `AF_INET' for Internet networks.
`unsigned long int n_net'
This is the network number. Network numbers are returned in
host byte order; see Note:Byte Order.
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.
- Function: struct netent * getnetbyname (const char *NAME)
The `getnetbyname' function returns information about the network
named NAME. It returns a null pointer if there is no such network.
- Function: struct netent * getnetbyaddr (unsigned long int NET, int
TYPE)
The `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 when using these functions
because they are not reentrant.
- Function: void setnetent (int STAYOPEN)
This function opens and rewinds the networks database.
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.
- Function: struct netent * getnetent (void)
This function returns the next entry in the networks database. It
returns a null pointer if there are no more entries.
- Function: void endnetent (void)
This function closes the networks database.