The hosts file is one of several system facilities that assists in addressing network nodes in a computer network. It is a common part of an operating system's Internet Protocol (IP) implementation, and serves the function of translating human-friendly hostnames into numeric protocol addresses, called IP addresses, that identify and locate a host in an IP network.
In some operating systems, the contents of the hosts file is used preferentially to other name resolution methods, such as the Domain Name System (DNS), but many systems implement name service switches, e.g., nsswitch.conf for Linux and Unix, to provide customization. Unlike remote DNS resolvers, the hosts file is under the direct control of the local computer's administrator.
The hosts file contains lines of text consisting of an IP address in the first text field followed by one or more host names. Each field is separated by white space (blanks or tabulation characters). Comment lines may be included; they are indicated by a hash character (#) in the first position of such lines. Entirely blank lines in the file are ignored. For example, a typical hosts file may contain the following:
# This is an example of the hosts file 127.0.0.1 localhost loopback ::1 localhost
This example only contains entries for the loopback addresses of the system and their host names, a typical default content of the hosts file. The example illustrates that an IP address may have multiple host names, and that a host name may be mapped to both IPv4 and IPv6 IP addresses.
Note that after the 127.0.0.1 localhost entry, another localhost entry defines the standard IPv6 loopback address (::1).
Beginning with Windows 7, name resolution for localhost is handled internally by DNS itself, so its definition isn't required in the Hosts file and these entries are now commented out with the # character in the default hosts file.
Location in the file system
The location of the hosts file in the file system hierarchy varies by operating system. It is usually named hosts, without an extension.
|Unix, Unix-like, POSIX||
|95, 98, Me||
|NT, 2000, XP, 2003, Vista, 2008, 7, 2012 and 8||
|Windows Mobile, Windows Phone||Registry key under
|Apple Macintosh||9 and earlier||Preferences or System folder|
|Mac OS X 10.0 – 10.1.5 ||(Added through NetInfo or niload)|
|Mac OS X 10.2 and newer||
|OS/2 & eComStation||
|Symbian||Symbian OS 6.1–9.0||
|Symbian OS 9.1+||
|iOS||iOS 2.0 and newer||
The ARPANET, the predecessor of the Internet, had no distributed host name database. Each network node maintained its own map of the network nodes as needed and assigned them names that were memorable to the users of the system. There was no method for ensuring that all references to a given node in a network were using the same name, nor was there a way to read the
hosts file of another computer to automatically obtain a copy.
The small size of the ARPANET kept the administrative overhead small to maintain an accurate
hosts file. Network nodes typically had one address and could have many names. As local area TCP/IP computer networks gained popularity, however, the maintenance of
hosts files became a larger burden on system administrators as networks and network nodes were being added to the system with increasing frequency.
Standardization efforts, such as the format specification of the file HOSTS.TXT in RFC 952, and distribution protocols, e.g., the hostname server described in RFC 953, helped with these problems, but the centralized and monolithic nature of hosts files eventually necessitated the creation of the distributed Domain Name System (DNS).
On some old systems a file named networks is present that has similar to hosts file functions containing names of networks.
- Redirecting local domains
- Some web service and intranet developers and administrators define locally defined domains in a LAN for various purposes, such as accessing the company's internal resources or to test local websites in development.
- Internet resource blocking
- Specially crafted entries in the hosts file may be used to block online advertising, or the domains of known malicious resources and servers that contain spyware, adware, and other malware. This may be achieved by adding entries for those sites to redirect requests to another address that does not exist or to a harmless destination, e.g., localhost. 
There are software applications that populate the hosts file with entries of undesirable Internet resources automatically.
The hosts file may present an attack vector for malicious software. The file may be modified, for example, by adware, computer viruses, or trojan horse software to redirect traffic from the intended destination to sites hosting malicious or unwanted content. The widespread computer worm Mydoom.B blocked users from visiting sites about computer security and antivirus software and also affected access from the compromised computer to the Microsoft Windows Update website.
- "Cisco Networking Academy Program: First-Year Companion Guide", Cisco Systems, Inc., 2002 (2nd Edition), page 676, ISBN 1-58713-025-4
- "Linux Network Administrators Guide – Writing hosts and networks files". Retrieved May 16, 2010.
- "Hosts File". Retrieved August 10, 2011.
- "Microsoft KB Q314053: TCP/IP and NBT configuration parameters for Windows XP". Retrieved August 28, 2010.
- "Microsoft KB 972034 Revision 2.0: default hosts files". Retrieved August 28, 2010.
- "Mac OS X: How to Add Hosts to Local Hosts File". Retrieved August 28, 2010.
- "The Haiku/BeOS Tip Server". Retrieved November 30, 2012.
- winhelp2002: Blocking Unwanted Connections with a Hosts File. Also includes a frequently-updated hosts file blocking domains usually unwanted
- "Remove Trojan.Qhosts – Symantec". Retrieved May 16, 2010.