/** + Email: tero@null.net + Pastebin: http://pastebin.com/u/tero **/ /** Aceasta este o modalitate de a schimba IP-ul intr-un GRABBER care foloseste cURL (folositor pentru a evita banarea IP-ului). Avem nevoie de un host shared cu cPanel ! Avem nevoie de urmatoarele: Un script care 'grabuieste' Mai multe IP-uri extrase de pe host (citeste mai jos) Si o bucata proprietate cURL care se foloseste integrata ! Pentru a face rost de IP-uri avem nevoie sa ne autentificam in FTP apoi sa intram in folderul /.cpanel/datastore, din acest folder descarcam fisierul all_iplist.db. In acest fisier gasiti lista cu toate IP-urile ale serverului pe care sunteti. Inainte de a folosii un IP trebuie sa verificati daca IP-ul este functional, copiati IP-ul si accesatil in browser, daca se poate accesa si apare o pagina web inseamna ca este bun, daca nu incercati altul ! Apoi avem nevoie de: // grab.lib.php **/ class grabber{ var $grab; function page($url,$mode){ //empty ? // fallin' back to file_get_contents if (empty($mode)){$mode='fget';} if ($mode=='fget'){ $opts = array( 'http'=>array( 'method'=>"GET", 'header'=>"Accept-language: en\r\n" . "User-Agent: SAMSUNG-SGH-E250/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)\r\n" ) ); $context = stream_context_create($opts); $page=file_get_contents($url, false, $context); $ret = $this->grab=$page; } if ($mode=='curl'){ $crl = curl_init(); curl_setopt ($crl, CURLOPT_URL,$url); curl_setopt ($crl, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($crl,CURLOPT_INTERFACE, '127.0.0.1'); curl_setopt($crl,CURLOPT_USERAGENT,'SAMSUNG-SGH-E250/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)'); curl_setopt ($crl, CURLOPT_HTTPHEADER,array('User-Agent: SAMSUNG-SGH-E250/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html),')); curl_setopt($crl, CURLOPT_FOLLOWLOCATION, 1); $grab = curl_exec($crl); curl_close($crl); $page=$grab; $ret = $this->grab=$page; } //echo 'Using '.$mode.' fetching contents'; return $ret; } } /** Si de fila care proceseaza. [DEMO] **/ require_once 'grab.lib.php'; $grab = new grabber(); header("Content-Type: text/plain"); function string($string, $start, $end) { $string = " " . $string ; $ini = strpos( $string, $start ) ; if ( $ini == 0 ) return "" ; $ini += strlen( $start ) ; $len = strpos( $string, $end, $ini ) - $ini ; return substr( $string, $ini, $len ) ; } $data = $grab->page('http://hfiles.ro/s/sisu-tudor','curl'); $vlista = string($data, '
','
'); preg_match_all('||',$vlista,$vfiles); foreach (array_combine($vfiles[1], $vfiles[2]) as $row => $row2) { echo $row."\nhttp://hfiles.ro".$row2."\n\n"; } /** A se observa in fisierul grab.lib.php linia: **/ curl_setopt ($crl,CURLOPT_INTERFACE, '127.0.0.1'); /** Inlocuiti 127.0.0.1 cu un IP functional din fisierul all_iplist.db. Se poate face si un array ca folosire random dintr-o lista de ip-uri din fisierul respectiv ca la fiecare conectare, scriptu sa foloseasca alt ip ! Este posibil ca providerul de unde aveti hostul shared sa va baneze contul pentru ca folositi asta, desi nu prea are cum sa afle... **/