# Hosts

Le fichier hosts est un fichier utilisé par le système d'exploitation d'un ordinateur lors de l'accès à un réseau, comme Internet par exemple. Son rôle est d'associer des noms d'hôtes à des adresses IP. Lors de l'accès à une ressource réseau par nom de domaine, ce fichier est consulté avant l'accès au serveur DNS et permet au système de connaître l'adresse IP associée au nom de domaine sans avoir recours à une requête DNS. Le fichier hosts est en texte brut et est usuellement nommé hosts. Les modifications sont prises en compte directement. Il est présent dans la plupart des systèmes d'exploitation.
Cette technologie fut à l'origine mise au point pour ARPANET, l'ancêtre d'Internet, mais devint insuffisante face à l'augmentation de la taille du réseau. Elle reste cependant utilisée pour les réseaux locaux de faible taille, ainsi que dans certains cas particuliers, par exemple pour le filtrage web.

## Localisation

L'emplacement du fichier hosts dépend du système d'exploitation :
| Système d'exploitation | Version(s) | Localisation du fichier |
| Unix, Unix-like, POSIX | | /etc/hosts |
| Microsoft Windows | 3.1 | %Windir%\HOSTS.SAMs |
| Microsoft Windows | 95, 98/98SE, Me | %WinDir%\ |
| Microsoft Windows | NT, 2000 et versions 32 bits de XP, 2003, Vista, 7, 8.x et 10 | %SystemRoot%\system32\drivers\etc\ |
| Microsoft Windows | Versions 64-bits | %SystemRoot%\system32\drivers\etc\ |
| Windows Mobile | | Clé d’enregistrement dans \HKEY_LOCAL_MACHINE\Comm\Tcpip\Hosts |
| Apple Macintosh | 9 et inférieur | Fichiers système : Préférences ou Fichiers système |
| Apple Macintosh | OS X 10.0 – 10.1.5 | (Ajouté par NetInfo ou niload) |
| Apple Macintosh | OS X 10.2 et supérieur | /private/etc/hosts ou /etc/hosts |
| Novell NetWare | | SYS:etc\hosts |
| OS/2 & eComStation (en) | | "bootdrive":\mptn\etc\ |
| Symbian | Symbian OS 6.1–9.0 | C:\system\data\hosts |
| Symbian | Symbian OS 9.1+ | C:\private\10000882\hosts |
| MorphOS | NetStack | ENVARC:sys/net/hosts |
| Android | | /system/etc/hosts |
| iOS | iOS 2.0 et supérieur | /etc/hosts |

## Filtrage Internet

Le fichier hosts permet aussi de filtrer l'accès à Internet, en attribuant à un site distant une adresse locale (127.0.0.1) ou mieux pas d'adresse (0.0.0.0 ou, tout simplement, 0). Par exemple, pour bloquer les publicités du site DoubleClick, spécialisé dans le traçage des publicités, il suffit d'ajouter dans le fichier hosts la ligne suivante 0.0.0.0 ad.doubleclick.net ; pour bloquer certains traceurs de Google, il faut ajouter la ligne suivante 0.0.0.0 adservices.google.com googlesyndication.com
La prise en compte par les navigateurs web d'une modification du fichier hosts ne nécessite pas le redémarrage de l'ordinateur. Dans le cas où des applications mettent ce fichier en cache, un redémarrage de l'application concernée (Firefox, etc.) ou le vidage du cache suffit.

## Injection

Lorsque le fichier hosts n'est pas protégé en écriture, certains programmes, comme les virus ou les espiogiciels, modifient les adresses de sites connus, tels Google, Altavista ou Microsoft, afin de rediriger vers un autre serveur, généralement piégé. Ils peuvent également bloquer l'accès aux sites utiles, tels les antivirus en ligne, de façon à rendre la désinfection de la machine plus difficile. Enfin, cette technique peut être utilisée dans le cadre de l'hameçonnage : les adresses de sites sur lesquels les utilisateurs sont amenés à s'identifier (eBay, Paypal, banques en ligne, etc.), sont redirigées vers des pages imitant leurs interfaces en tous points, de manière à leurrer les utilisateurs, afin qu'ils saisissent leurs identifiants et mots de passe en toute confiance.