The hosts file is a local database that associates the names of hosts with their Internet Protocol (IP) addresses. The hosts file can be used in conjunction with,
or instead of, other hosts databases, including the Domain Name System (DNS), the NIS hosts map and the NIS+ hosts table. Programs use library interfaces to access
information in the hosts file.
The hosts file has one entry for each IP address of each host. If a host has more than one IP address, it will have one entry for each, on consecutive lines. The format of each
IP-address official-host-name nicknames...
Items are separated by any number of SPACE and/or TAB characters. The first item on a line is the host's IP address. The second entry
is the host's official name. Subsequent entries on the same line are alternative names for the same machine, or "nicknames." Nicknames are optional.
For a host with more than one IP address, consecutive entries for these addresses may contain the same or differing nicknames. Different nicknames are useful for assigning distinct names to different
A call to gethostbyname(3NSL) returns a hostent structure containing the union of all addresses and nicknames from each line containing a matching official name or nickname.
A `#' indicates the beginning of a comment; characters up to the end of the line are not interpreted by routines that search the file.
Network addresses are written in the conventional "decimal dot" notation and interpreted using the inet_addr routine from the Internet address manipulation library, inet(3SOCKET).
This interface supports host names as defined in Internet RFC 952 which states:
A "name" (Net, Host, Gateway, or Domain name) is a text string up to 24 characters drawn from the alphabet (A-Z), digits (0-9), minus sign (-), and period (.). Note that periods
are only allowed when they serve to delimit components of "domain style names". (See RFC 921, "Domain Name System Implementation Schedule," for background). No blank or space characters
are permitted as part of a name. No distinction is made between upper and lower case. The first character must be an alpha character. The last character must not be a minus sign or period.
Although the interface accepts host names longer than 24 characters for the host portion (exclusive of the domain component), choosing names for hosts that adhere to the 24 character restriction
will insure maximum interoperability on the Internet.
A host which serves as a GATEWAY should have "-GATEWAY" or "-GW" as part of its name. Hosts which do not serve as Internet gateways should not use "-GATEWAY"
and "-GW" as part of their names. A host which is a TAC should have "-TAC" as the last part of its host name, if it is a DoD host. Single character names or nicknames
are not allowed.
RFC 952 has been modified by RFC 1123 to relax the restriction on the first character being a digit.