Prolegómenos
Primero que nada partamos por aclarar ciertas cosas que no son conocidas por tod@s (y ojo que iremos como los cangrejos, de atrás pa’ delante). Cuando en nuestro navegador escribimos http://www.andrade.cl y le pedimos que abra dicho sitio, este, antes de hacer una petición HTTP y blablabla, debe encontrar el servidor de destino para dicha petición ¿cómo hacemos esto? Veamos....
DNS
Internet se sostiene actualmente en el Procotolo IP v4 y la forma en como nos "materializamos" en la red de redes es través de las direcciones IP. Actualmente una dirección IP está formada por un número compuesto por 4 grupos de números cuyo rango va de 0 a 255 (no viene al caso explicar numeración binaria ni hexadecimal, para eso hay harto que buscar, sobretodo aquí). Por ejemplo la dirección IP del servidor de Google.cl (uno de los que compone el cluster) es 64.233.169.99, todos los servidores que participan activamente en internet tienen una dirección IP asignada, el problema es ¿tenemos los humanos la capacidad de conocer y memorizar todos las direcciones IP o por lo menos de los sitios que regularmente visitamos? La verdad es que no. La humanidad siempre se ha caracterizado por ubicarse más por parámetros cualitativos que cuantitativos e Internet no es la excepción. Es por esto que para ubicar de una forma más simple los distintos servicios de internet existe algo llamado DNS (Domain Name System), los cuales realizan el servicio de asociar un nombre de dominio a una dirección IP lo que supone dos grandes ventajas, la primera es obviamente el de "enmascarar" una IP con un nombre nemotécnico (aunque he visto unos nombres de dominio...ufff que ni les cuento) y el segundo y de gran ayuda es que en caso de que la dirección IP cambie esto sólo se haga en el servidor DNS del dominio, así todos los usuarios seguiran usando el mismo nombre de dominio.
El archivo hosts
Hasta aquí todo bien, pero (siempre hay uno) ¿siempre existió el DNS?. La respuesta es no, antes de DNS había un sistema basado llamado HOSTS y que en terminos simples consistía en un archivo, el cual almacenaba el nombre del dominio y la dirección IP asociada. El formato es así:
Dirección IP Nombre de Host o dominio
127.0.0.1 localhost
Este archivo en los inicios de Internet almacenaba a todos los Hosts o Servidores que componían la red, pero, debido al explosivo crecimiento de la red, esto se hizo poco eficiente (la verdad es que muy deficiente) ya que este archivo debía ser modificado en cada una de las máquinas o sea una verdadera lata expresado en buen chileno. Esto llevó a la evolución plasmada en la centralización del servicio de resolución de nombres de dominio en los servidores DNS.
Sin embargo, este archivo no fue eliminado de las sistemas operativos y así ha permanecido hasta el día de hoy. Actualmente lo único que trae por defecto es la asocicación entre la dirección IP 127.0.0.1 y localhost que es nuestra maquina (por esto es que esa dirección IP se le denomine como loopback) La ubicación en los sistemas operativos más usados es:
Sistema Operativo - Ubicacion
Windows NT/2000 - C:\>Winnt\System32\drivers\etc\hosts
Windows XP-Vista - C:\>Windows\System32\drivers\etc\hosts
OS X y Linux - /etc/hosts
Retomemos el ejercicio inicial, cuando escribimos http://www.mmug.cl el navegador envia la orden a nuestro sistema operativo para que consulte primero donde está la dirección IP de nuestra querida comunidad. El sistema operativo primero consulta al archivo hosts, pero como mencionamos anteriormente este por defecto sólo trae la asociación a localhost con 127.0.0.1 por lo tanto, no servirá para dar respuesta a la consulta ¿cuál es la dirección IP del FQDN www.mmug.cl?, entonces es ahí que el sistema operativo consultará al DNS.
El truco
Ya pero uds. se preguntarán ¿dónde está el maldito truco?. Bueno para poder controlar la publicidad indeseada, pop-ups y todo lo que sea indeseable y detestable de la web lo podemos hacer por medio del archivo hosts. ¿Cómo? pues considerando todo lo explicado anteriormente, sobretodo el hecho de que siempre la consulta de un FQDN debe pasar primero por este humilde archivito, es que por cada sitio indeseado, crearemos una asociación en el archivo hosts (editandolo con cualquier editor de texto plano, vi o block de notas basta) apuntando a la dirección IP 127.0.0.1(nuestra máquina), el símbolo # sirve para comentar líneas para que el sistema operativo no las interprete. Un ejemplo sería más o menos así:
#Direccion IP Nombre de Host o dominio
127.0.0.1 localhost
127.0.0.1 sitioindeseado.com
127.0.0.1 publicidadodiosa.cl
Luego reiniciamos nuestros servicios de resolucion de nombres con los siguientes comandos según el sistema operativo: ipconfig/flushdns y luego ipconfig/registerdns en el caso de Windows, con /etc/init.d/named restart (linux basados en Red Hat) y /etc/init.d/bind restart (linux basado en debian)
Y listo entonces cuando abramos algún sitio que contenga publicidad o contenido no deseado (a través de frames o iframes o pop-ups) y que estén registrados en nuestro archivo hosts estos no se cargaran. Si hay problemas con algun sitio o este ya dejó de ofrecer contenido molestoso, simplemente lo borramos o mejor aún lo comentamos con #.Ven que es sencillo. ;)
Hay muchas extensiones para navegadores basados en Mozilla que resuelven este problema (
busquen aquí), sin embargo este truco permite controlar el contenido para cualquier aplicación, tanto a navegadores que no sean Mozilla como aplicaciones de mensajería que muestre contenido desde internet. Por ejemplo, así eliminé la publicidad de Windows Live Messenger, basta con averiguar cuál es el origen de dicha publicidad , agregamos el dominio en el archivo hosts y listo. Esta es una forma sencilla, accesible para todos y efectiva.