sábado, 10 de enero de 2009

El archivo host de Windows

Todo el hardware: ordenadores, impresoras, etc. que está conectado a internet, se identifica por su número IP. Una realidad es que acordarse de estos números es tarea tediosa, y por ello desde el principio se usan los equivalentes nombres de dominio. Así, la ip 207.46.130.161 tiene asociada el nombre de dominio msdn.microsoft.com y podemos llegar a esta página tecleando http://numero_de_ip o tecleando http://nombre_de_dominio

Naturalmente hace falta establecer un sistema mediante el cual el ordenador resuelva estos binomios por nosotros. Esto se hace actualmente a traves de los servidores de nombres de dominio. Se trata de máquinas normalmente unix permanentemente conectadas a la red, cuya función no es otra que la de resolver consultas de nombre de dominio facilitando la IP asociada.

Bien, cabe preguntarse si saber todo esto nos sirve de algo. Es evidente que si para cada página que vemos el navegador tiene que pedir antes la IP a un servidor de nombres, esto tarda tiempo y consume recursos de internet. Sería mas rápido si saltamos este paso. Podemos hacerlo tecleando directamente la ip en la barra de direcciones, pero ya hemos dicho que precisamente ante la imposibilidad de recordar las ips se crearon los nombres de dominio. La solución es el archivo host

El archivo host (sin extensión ninguna) es un archivo de texto que encontramos tanto en Windows XP con en Vista en C:\windows\system32\drivers\etc\hosts. Si lo editamos con el notepad veremos que su contenido típico es algo asi como:

#Host list for localhost generated by browserc.dll
localhost 127.0.0.1

Bien, tenemos aqui dos lineas. La primera que empieza con el carácter 'almohadilla' es simplemente un comentario. La segunda es la que nos interesa: localhost 127.0.0.1: esa linea indica que hay un ordenador llamado localhost cuya IP es 127.0.0.1.

127.0.0.1 es un numero IP ficticio, que designa la propia máquina que hace la petición. Esta instrucción dice que cualquier petición de datos a localhost debe buscarse en la PC que la hace. Asi, si tuvieras en tu PC un servidor web, tecleando http://localhost podrias navegar por su contenido sin necesidad de estar conectado a la red. La utilidad de todo esto es que podemos añadir en este archivo host cuantas parejas de nombres de dominio - IP queramos. El navegador consultara el archivo host y solo si no encuentra alli el nombre de dominio solicitado acudira a un servidor dns externo.

Por ejemplo:#Host list for localhost generated by browserc.dll
localhost 127.0.0.1
128.183.17.121 antwrp.gsfc.nasa.gov
204.146.167.214 apache-server.com
195.5.65.193 arrakis.linux.tucows.com

Con lo que conseguimos ir a cualquiera de esos sitios sin pasar por un server dns.

Si en nuestro archivo host escribimos msdn.microsoft.com 127.0.0.1, cuando intentemos acceder a ese servidor, el navegador nos llevara a nuestro propio ordenador. Las posibilidades son muy interesantes. Cada vez mas las paginas de internet estan saturadas de todo tipo de banners y anuncios. En muchas ocasiones estos banners y anuncios nos son enviados desde servidores especializados. Si tuvieramos una lista de estos servidores de internet especializados en servir propaganda, y los incluyeramos en nuestro archivo host apuntando en lugar de a su ip real a nuestro local host, cualquier aplicacion que quisiera acceder a los anuncios iria en su lugar a nuestro propio ordenador, evitandonos la vision del anuncio, con el consiguiente ahorro de tiempo.

Si quisieramos que una dirección Web apunte en lugar de su IP real a nuestro LocalHost solo tendriamos que hacer lo siguiente:

#Host list for localhost generated by browserc.dll
localhost 127.0.0.1
127.0.0.1 arrakis.linux.tucows.com
127.0.0.1 apache-server.com