PROXYgetter

Iniciado por Xt3mP, Abril 16, 2012, 04:02:31 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Abril 16, 2012, 04:02:31 AM Ultima modificación: Abril 16, 2012, 07:00:55 PM por Xt3mP
PROXYgetter es una herramienta en PHP la cual fue inspirada en la herramienta de Dedalo en python, es decir, el mecanismo es diferente pero la idea principal fue tomada de dicho script.




Actualmente consta de dos páginas donde obtengo los proxys:
  • No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
  • No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


    Funcionamiento
    El mecanismo es sumamente fácil; mediante expresiones regulares obtengo una lista de proxys a los cuales mediante sockets compruebo el tiempo de conexión para solo mostrar los que el usuario requiera ya que tiene un sistema de personalización.


  • Max. pages (1-5): Se puede ingresar un número del 1 al 5 tomando de referencia que la página No tienes permitido ver los links. Registrarse o Entrar a mi cuenta solo tiene 5 páginas.
  • Timeout: El tiempo máximo de espera.
  • Show all results: Sirve para mostrar resultados tanto positivos como negativos.
  • Stop processing if there's X positive matches: Indicamos cuantos proxys correctos debe haber para detener la carga del script; 0 significa todos.


    Código: php
    <?php
    /*
    * Name: PROXYgetter
    * Author: Xt3mP
    * Contact: xt3mp[at]null[dot]net
    * Bugs: xt3mp[at]null[dot]net
    * Personal website: http://xt3mp.mx
    * Website: http://backroot.org
    * Version: 1.0 BETA
    */
    ob_implicit_flush();
    set_time_limit(0);
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    <title>PROXYgetter v1.0 [Xt3mP]</title>
    <style type="text/css">body{background-color:#000;color:#FFF;font-family:"Courier New";font-size:14px}div#container{background-color:#151515;border:1px dashed #FFF;margin:0 auto;padding:5px;text-align:center;width:800px}input{font-family:"Courier New";text-align:center}h1{border-bottom:1px dashed #FFF;border-top:1px dashed #FFF;margin:0 0 5px;padding:0}p{border-top:1px dashed #FFF;margin:5px 0 0;padding:0}a{color:lime;text-decoration:none}a:hover{color:#FFF}.result{border-top:1px dashed #FFF}</style>
    </head>
    <body>
    <div id="container">
    <pre>
    ______  ______  _______  ___ ___  ___ ___                __    __PROXYgetter v1.0
    |   __ \|   __ \|       ||   |   ||   |   |.-----..-----.|  |_ |  |_ .-----..----.
    |    __/|      <|   -   ||-     -| \     / |  _  ||  -__||   _||   _||  -__||   _|
    |___|   |___|__||_______||___|___|  |___|  |___  ||_____||____||____||_____||__|
                                               |_____|             Powered By Xt3mP
                                                                 xt3mp[at]null[dot]net
    </pre>
            <h1>Free proxys for you</h1>
            <form action="" method="POST">
                    For each page, the script tries to verify the connection of 50 proxys.<br />
                    Max. pages (1-5): <input type="text" name="pages" value="5" size="1" maxlength="1"> -
                    Timeout: <input type="text" name="timeout" value="1" size="1" maxlength="1"><br />
                    Show all results: <select name="show"><option value="no">No</option><option value="yes">Yes</option></select><br />
                    Stop processing if there's <input type="text" name="stop" value="0" size="2" maxlength="2"> positive matches<br />
                    <font color="red">[0: All]</font><br />
                    <input type="submit" name="get" value="Give me proxys for free!">
            </form>
            <?php
            if(isset($_POST['get']))
            {
                    echo '<div class="result">';
                    $proxyList = array();
                    $pages = (!is_numeric($_POST['pages']) or $_POST['pages'] < 1 or $_POST['pages'] > 5) ? 5 : abs($_POST['pages']);
                    $timeOut = (!is_numeric($_POST['timeout'])) ? 5 : abs($_POST['timeout']);
                    $show = ($_POST['show'] != 'no' && $_POST['show'] != 'yes') ? 'yes' : $_POST['show'];
                    $stop = ($_POST['stop'] == 0 or !is_numeric($_POST['stop']) or $_POST['stop'] > 50) ? 'all' : abs($_POST['stop']);
                    $counter = 0;
                    $quit = false;
                    #This section of the code
                    #is for proxys.com.ar
                    for($i = 0; $i <= $pages; $i++)
                    {
                            if($quit)
                            {
                                    break;
                            }else{
                                    $web = ($i == 0) ? 'http://www.proxys.com.ar/' : 'http://www.proxys.com.ar/index.php?act=list&port=&type=&country=&page='.$i;
                                    $webContent = @file_get_contents($web);
                                    $_pattern1 = "/<tr class=\"cells\" onmouseover=\"this\.className='cells2'\" onmouseout=\"this\.className='cells'\">(.*?)<\/tr>/is";
                                    $pregMatch = @preg_match_all($_pattern1, $webContent, $proxyData, PREG_SET_ORDER);
                                    for($x = 0; $x<count($proxyData); $x++)
                                    {
                                            $_pattern2 = "/<td>(.*)<\/td>/i";
                                            $pregMatch = @preg_match_all($_pattern2, $proxyData[$x][1], $proxyConnect, PREG_SET_ORDER);
                                            $proxyIp = $proxyConnect[0][1];
                                            $proxyPort = $proxyConnect[1][1];
                                            $proxyCountry = $proxyConnect[3][1];
                                            $proxyTarget = $proxyIp.':'.$proxyPort;
                                            $fp = @fsockopen($proxyIp, $proxyPort, $errno, $errstr, $timeOut);
                                            if($fp)
                                            {
                                                    if(!in_array($proxyTarget, $proxyList))
                                                    {
                                                            $counter++;
                                                            array_push($proxyList, $proxyTarget);
                                                            echo '<font color="lime">'.$proxyTarget.' > '.$proxyCountry.'</font><br />';
                                                            if($counter == $stop)
                                                            {
                                                                    $quit = true;
                                                                    break;
                                                            }
                                                    }
                                            }elseif(!$fp && $show == 'yes'){
                                                    echo '<font color="red">'.$proxyTarget.' > '.$proxyCountry.'</font><br />';
                                            }
                                    }
                            }
                    }
                    #This section of the code
                    #is for xroxy.com
                    if(!$quit)
                    {
                            $latency = $timeOut * 1000;
                            $web = 'http://www.xroxy.com/proxylist.php?port=&type=&ssl=&country=&latency='.$latency.'&reliability=#table';
                            $webContent = @file_get_contents($web);
                            $_pattern1 = "/<tr class='row[(1|0){1}]'>(.*?)<\/tr>/is";
                            $pregMatch = @preg_match_all($_pattern1, $webContent, $proxyData, PREG_SET_ORDER);
                            for($i=0; $i<count($proxyData); $i++)
                            {
                                    $_pattern2 = "/<td[( nowrap='nowrap'>|>)?](.*?)<\/td>/s";
                                    $pregMatch = @preg_match_all($_pattern2, $proxyData[$i][1], $proxyConnect, PREG_SET_ORDER);
                                    $proxyIp = @preg_replace("/\s/", '', $proxyConnect[1][1]);
                                    $proxyPort = $proxyConnect[2][1];
                                    $proxyCountry = str_replace("nowrap='nowrap'>", "", $proxyConnect[5][1]);
                                    $proxyTarget = $proxyIp.':'.$proxyPort;
                                    echo '<font color="lime">'.$proxyTarget.' > '.$proxyCountry.'</font><br />';

                            }
                    }
                    //echo count($proxyList).' matches.';
                    echo '</div>';
            }
            ?>
            <p>Coded by <a href="http://xt3mp.mx">Xt3mP</a> for <a href="http://backroot.org">backroot.org</a></p>
    </div>
    </body>
    </html>



    Proof:


    Nota: Los proxys devueltos fueron testeados en Mozilla, además, el script es un poco simple.


    Saludos.
Cada vez que me das Karma me motivas

Qué maquina
Sigueme en Twitter : @Sankosk
Estos nuevos staff no tienen puta idea XD

y donde este el codigo de dedalo , porque lo estoy buscando y no lo encuentro.

Acá está el de Dedalo:
Código: perl
from urllib2 import Request, urlopen, URLError, HTTPError
import urllib2, string, re
def test(ip, puerto):
proxy = urllib2.ProxyHandler({"http" : ip+":"+puerto})
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
try:
web=urllib2.urlopen("http://whatismyip.org/", timeout=3)
print web.read()
f=open("ip.txt", "a")
f.write(ip+":"+puerto+"\n")
except Exception as e:
print  str(e)
def extractor():
a=urllib2.urlopen("http://www.cybersyndrome.net/pla5.html")
list= a.readlines()
cad=list[106]
cadena=cad.split("</li>")
for i in cadena:

inicio=i.find('">')
fin=i.find('</a>')
proxypuerto=i[inicio+2:fin]
if proxypuerto!='/ol>':
proxy=proxypuerto.split(":")
ip=str(proxy[0])
puerto=str(proxy[1])
print "ip/url: "+str(ip)+"\n"
print "puerto: "+str(puerto)+"\n"
print "resultado: "
test(ip, puerto)
print "------------------------"

if __name__ == "__main__": 
print "PROXY FINDER By Dr.Neox And Dedalo for Backroot.org"
extractor()
anon()


Sólo que los lista sin comprobarlos, saludos.
Cada vez que me das Karma me motivas

pero lo hizo en Python o hay otra version en Perl ?
Cuando tenga tiempo voy a hacer uno Perl donde compruebe 4 o 5 paginas para despues comprobarlos de uno en uno.

Las paginas que eh encontrado (aparte de las dos tuyas)  hasta ahora son estas

Código: php

http://www.proxys.com.ar/index.php
http://www.xroxy.com/proxylist.php
http://spys.ru/en/free-proxy-list/1/
http://www.proxylist.net/
http://proxy-ip-list.com/free-usa-proxy-ip.html
http://proxies.my-proxy.com/proxy-list-4.html


Fue en python, me equivoqué; y sobre las páginas, en una oportunidad las actualizo. Gracias.
Cada vez que me das Karma me motivas