Obteniendo Proxys anónimos de samair.ru

9

Visto 14551 veces | Publicado el 09/06/2010 | script


Siempre es útil disponer de una lista de proxys "anónimos" para hacer alguna que otra prueba, buscando de qué forma obtener una buena lista sin tener que consultar las páginas que los publican,  encontré el siguiente script: http://pastebin.com/f64134167. Después de varias pruebas comprobé que la lista de proxys de http://www.samair.ru/proxy/time-01.htm no se obtenía correctamente.

 

En la web de Samair.ru comprobé que habían incluido un código en javascript que genera un diccionario con los puertos en los que está ubicado el proxy, así que el script que estaba usando fallaba.

Para resolverlo desarrolle el siguiente:

#!/usr/bin/env python
# Author: freed0m at hacktimes.com
# Visit us at: http://www.hacktimes.com

import re, sys, urllib2, random

#conf

fichero = 'samair-proxy.txt'
site = "http://www.samair.ru/proxy/time-"

# Regex
regex1 = """<script src="http://samair.ru:81/js/m.js" type="text/javascript"></script><script type="text/javascript">
(.*)</script></head>"""
regex2 = """([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})<script type="text/javascript">document.write\(":"([\+a-z]+)"""

fich = open(fichero,'a')

# Main

for i in range(1,11):
    if i<10:    
        cad = "0" + str(i)
    else:
        cad = str(i)
    url = site + cad + ".htm"
    try:       
        print ("Obteniendo proxys de la direccion %s" %(url))
        pet = urllib2.urlopen(url)
        contenido = pet.read()       
        match = re.search(regex1,contenido)
        claves = match.group(1)
        valores = claves.split(";")
        diccionario = {}
        for v in valores:
            if len(v.split("="))>1:
                diccionario[v.split("=")[0]] = v.split("=")[1]
        sustituir = re.findall(regex2,contenido)               
        for s in sustituir:       
            IP = s[0]   
            rango = s[1].split('+')
            Puerto = ''           
            for p in rango:
                if p:
                    Puerto = Puerto + diccionario[p]
            proxy = IP + ":"+ Puerto
            fich.write(proxy + "\n")
    except urllib2.URLError as e:
        print ("Error Obteniendo Proxys: %s" %(e))

 

Este script procesa cada url, obtiene el diccionario del javascript para generar los puertos correctamente y guarda un txt con los proxys obtenidos.

Esperamos que os resulte útil. Puedes descargarlo aquí: http://www.hacktimes.com/files/htimes_proxy.py


mayo 09 3:31 a.m.
chabelo dijo:

wifi

febrero 06 2:08 p.m.
s0mbra d3 h4ckul dijo:

genial aporte gracias funciona perfecto i gracias por los posts puestos en la pagina son todos muy buenos a ver si mi pequeño cerebro puede absorver tanta info tan buena salud2 a t0dos

octubre 14 3:06 p.m.
freed0m dijo:

hemos realizado un minimo cambio en el script para que funcione con los cambios que han realizado en samair.ru

agosto 12 7:07 p.m.
rever dijo:

gracias por tu respuesta y por el script ya lo arregle, funciona perfecto

agosto 12 1:35 p.m.
freed0m dijo:

@rever si consultas en Google el error veras que se trata de Microsoft ForeFront, que impide realizar dichas peticiones al exterior, verifica que no existe dicho producto en tu red o aplica una configuración adecuada. Siempre puedes probarlo desde otra red, no parece tener nada que ver con el propio script. Saludos.

agosto 12 6:55 a.m.
rever dijo:

baje el script y cuando lo corro me da un error de 502 en cada pagina que intenta y el error lo describe como "forefront tmg denied the specified uniform resource locator" quisiera saber que estoy haciendo mal soy nuevo a este lenguaje, gracias por tu respuesta y por compartir el codigo

julio 05 6:29 p.m.
freed0m dijo:

@Anonimo: Buenas, tienes que usar un interprete de python, consulta la dirección: http://www.python.org/ Para ejecutarlo simplemente python htimes_proxy.py

julio 05 12:33 a.m.
Anonimo dijo:

como uso ese script porque tampoco puedo ver la lista de proxys

junio 10 9:12 a.m.
vespadict dijo:

Muy util :) Thx.


Añadir comentario











Búsqueda

Síguenos


Otros contenidos

El staff de Hacktimes ruega a cualquier persona interesada en la distribución y/o publicación de estos artículos que lo haga sin alterar su contenido y cite a su autor y/o la fuente original. Muchas gracias.

Todos los artículos publicados se encuentran bajo la licencia Creative Commons