Buscar correos en los buscadores : ---------------------------------- Esta idea no es nueva, ya la uso el Mydoom y se les debe haber ocurrido a muchos de ustedes. Si entramos a algun buscador, y hacemos una busqueda de digamos : @hotmail.com ,nuestro navegador se conecta al puerto 80 del buscador envia una solicitud HTTP Get ,y el buscador responde enviando los resultados de la busqueda. Ahora si nos fijamos en las urls que aparecen en el navegador, cuando accedemos a los resultados de la busqueda, podemos ver segun el navegador: Google: ------- http://www.google.com/search?q=%40hotmail.com&hl=es&lr=&start=0&sa=N Analizando la sintaxis de la Url: http://www.google.com/search?q=palabra&hl=es&lr=&start=#&sa=N Yahoo: ------ http://search.yahoo.com/search?p=%40hotmail.com&toggle=1&ei=UTF-8&fr=FP-tab-web-t&b=0 Analizando la sintaxis de la Url: http://search.yahoo.com/search?p=palabra&toggle=1&ei=UTF-8&fr=FP-tab-web-t&b=# Altavista: ---------- http://www.altavista.com/web/results?itag=ody&q=@hotmail.com&kgs=0&kls=0&stq=0 Analizando la sintaxis de la Url: http://www.altavista.com/web/results?itag=ody&q=palabra&kgs=0&kls=0&stq=# Lycos: ------ http://search.lycos.com/default.asp?query=%40hotmail%2Ecom&first=0&pmore=more Analizando la sintaxis de la Url: http://search.lycos.com/default.asp?query=palabra&first=#&pmore=more ----------------------------------------------------------- Donde: palabra es la palabra o cadena que queremos buscar %40hotmail%2Ecom = @hotmail.com @ = %40 en Unicode . = %2E en Unicode # es el numero de resultado, para el buscador si ponemos 0 le estamos indicando que nos muestre del resultado 0 al 10 si ponemos 10 le estamos indicando que nos muestre del resultado 10 al 20 ( como muestran de 10 en 10 ) Entonces ya conocemos la sintaxis de las url de busqueda que utilizan esos buscadores, podemos entrar al navegador y colocar alguna de esas urls y reemplazar palabra por lo que queramos y # por algun numero ( de preferencia multiplo de 10, en especial para google ) y el buscador nos devolvera los resultados de la palabra indicados por el numero. Como nota, ninguno de los 4 buscadores me dejo acceder a resultados mayores al numero 1000, osea que # debe ser un multiplo de 10 entre 0 y 990 Ahora nuestro programa debe conectar al puerto 80 del buscador y enviar la url de busqueda, debe enviar una peticion HTTP Get como la envian los navegadores, porque si envia solo: GET /<url> HTTP/1.0 no funka en algunos buscadores. Conectamos con alguno: Google => www.google.com Yahoo => search.yahoo.com Altavista => www.altavista.com Lycos => search.lycos.com Si conectamos por ejemplo con Google enviamos: GET /search?q=palabra&hl=es&lr=&start=#&sa=N HTTP/1.0 Accept: */* Accept-Language: es-pe User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98) Host: www.google.com:80 Asegurense de no incluir la cabecera: Accept-Encoding: gzip ,para que no esten como yo, revisando como bruto 1 hora el code, porque los buscadores me enviaban "basura" en vez de los resultados, esa "basura" era la page que el buscador me enviada comprimida porque le indicaba en esa cabecera que aceptaba compresion gzip. Luego recibimos los resultados y de hay tenemos que extraer los correos, si hacemos una busqueda por @hotmail.com obtendremos tambien otros correos como @aol.com, @yahoo.com, etc, asi que si solo queremos los de hotmail para enviar por mx1.hotmail.com debemos separarlos Lo que me parece más recomendable seria encontrar un server smtp que permita relay (que no compruebe el dominio del destinatario, osea por ejemplo mx1.hotmail.com solo nos permite enviar mails a correos de dominio hotmail.com ,hay smtps que permiten enviar a cualquier dominio destinatario prueben el smtp con el mail from del dominio del server y el rcpt to de otro dominio, si les deja mandar el mail es relay); y hacer busquedas por @hotmail.com, @yahoo.com.mx, @terra.com.pe, etc y enviarnos a todos los mails que obtengamos. Muy posible que recibamos mails invalidos o mesclados con caracteres basura tenemos que obviar los invalidos y quitar la basura, por ejemplo: invalido: user@dominio (no tiene punto) con basura: (user@dominio.com) ó "user@dominio.com" (quitamos los ( y ") Tambien tendremos que hacer reemplazos, algunas pages para evitar que los spammers capturen los correos, reemplazan la @ por (a) , (at) , [at] y el . por (.) , [.] ,entonces los volvemos a convertir a @ y . Aun despues de la seleccion es muy posible que se nos cuele un correo invalido, por lo que nuestro motor smtp debe estar preparado para manejar ciertos errores y de ser necesario volver a conectar Codigo de como buscar los mails en los buscadores en la carpeta [Ejemplos] El code esta en VB (el mydoom que lo hizo en C++, hay si debe ser dificil) (C) Mitosis 3 - GEDZAC LABS