Windows 'hosts' file ignored: solution
Today I lost 1 hour trying to understand why the settings from my 'hosts' file were ignored on a 'Windows 2000' machine. When I was faced with this problem I tried the following but without success:
- to use to tabs instead of empty spaces and vice-versa. I tried both variants. I later found out that on 'Windows 2000' this file is not sensible to 'tab' vs. 'empty spaces' issue.
- too many entries in the 'hosts' file. This was not the case: this file can support
several hundreds entries and I only had about 10 entries. However, if you have too
many entries in the 'hosts' file your PC's performance may be drastically degraded.
- maybe a reboot is required after each modification in order to be acknowledged by the system. This is false: no reboot is required if new entries are added to an already functional 'hosts' file. The web browser needs to be restarted in order to use the new settings.
The solution to this problem is not found in the file itself but in the registry. The registry key
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath
points to the location of the 'hosts' file. Since some program from my workstation has altered this registry key, the default hosts file was completely ignored. If you will find the same situation on your machine it is possible that some Adware/Spyware has been installed on your machine. This kind of application will attempt to disable the 'hosts' file because some people use this file in order to cancel all the connections to some hosts with bad reputation.
How to enable the hosts file (step by step)
- run 'regedit':
- when first started, regedit look like this:
- navigate to the above mentioned key:
Note:
- check that you are truly in the right position in the registry - the status line from your regedit window shows you the current position. In the picture this is marked as "1".
- search for the "DataBasePath" key in the right panel. In the picture this is marked as "2".
- Store in the key "DataBasePath" to the path where you intend to put your 'hosts' file.
For 'Windows 2000' the default file location is:
%SystemRoot%\system32\drivers\etc
- Reboot the machine. This is necessary only when the path to the 'hosts' file is updated (e.g. registry settings are changed), not when the hosts file itself is updated.
All the above information can be found on Microsoft's web site.
This is a big file: finding the useful information took me about 1 hour. If you are a real geek you are welcome to take a look by yourself :). Search for the word "DataBasePath" in order to find the relevant section.
Observation:
Ad blocking using the windows host file seems to be very easy to circumvent because any program can modify the registry settings (this is possible because the majority of windows users are running their PCs in administrator mode)
Best regards,
Razvan MIHAIU