oski225 0 Zgłoś post Napisano Listopad 28, 2010 Witam, napisałem kilka skryptów, które mają podobną zasadę działania - logują się, pobierają dane i wylogowywują się. Jest jednak jeden problem - na każdym z tych skryptów po kilku godzinach działania następuje tak jakby "ban" na ip, przez który nie mogę się w ogóle połączyć z serwerem, z którego chcę pobrać dane. Po wysłaniu wiadomości do administratorów stron, z których pobieram, zawsze otrzymuję informację, że ban nie idzie z ich strony, dlatego pomyślałem, że może błąd tkwi w skryptach. Jeden ze skryptów: <?php function GetBetween($content,$start,$end){ $r = explode($start, $content); if (isset($r[1])){ $r = explode($end, $r[1]); return $r[0]; } return ''; } $nrplik = 0; while(file_exists('/tmp/link'.$nrplik.'.txt')) { $nrplik++; } $link = $_GET['link']; $pelny = "http://www.fileserve.com/".$link; $c = curl_init(); curl_setopt($c, CURLOPT_URL, 'http://www.linksnappy.com/members/index.php?act=login'); curl_setopt($c, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13'); curl_setopt($c, CURLOPT_POST, 1);//przesylamy metodą post curl_setopt($c, CURLOPT_POSTFIELDS, 'username=xxx&password=xxx&submit=Login'); //dane do wyslania curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); curl_setopt($c, CURLOPT_FOLLOWLOCATION, true); curl_setopt ($c, CURLOPT_COOKIEJAR, '/tmp/link'.$nrplik.'.txt'); curl_setopt ($c, CURLOPT_COOKIEFILE, '/tmp/link'.$nrplik.'.txt'); $page = curl_exec($c); curl_close($c); $c = curl_init(); curl_setopt($c, CURLOPT_URL, 'http://www.linksnappy.com/index.php?act=download'); curl_setopt($c, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13'); curl_setopt($c, CURLOPT_POST, 1); curl_setopt($c, CURLOPT_POSTFIELDS, 'xjxfun=processLink&xjxr=1290701097931&xjxargs[]='.$pelny.'&xjxargs[]=Sfileserve.com&xjxargs[]=Strue'); //dane do wyslania curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); curl_setopt($c, CURLOPT_FOLLOWLOCATION, true); curl_setopt ($c, CURLOPT_COOKIEJAR, '/tmp/link'.$nrplik.'.txt'); curl_setopt ($c, CURLOPT_COOKIEFILE, '/tmp/link'.$nrplik.'.txt'); $page = curl_exec($c); curl_close($c); $link = GetBetween($page, 'href="', '"'); $range = @$_SERVER['HTTP_RANGE']; if($range) { $reg = "/bytes=([0-9]+)-([0-9]*)/"; preg_match($reg, $range, $matches); $r_start = (int) $matches[1]; $r_stop = (int) $matches[2]; $ch = curl_init($link); curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13'); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_NOBODY, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_RANGE, $r_start.'-'); curl_setopt ($ch, CURLOPT_COOKIEJAR, '/tmp/link'.$nrplik.'.txt'); curl_setopt ($ch, CURLOPT_COOKIEFILE, '/tmp/link'.$nrplik.'.txt'); $naglowki = curl_exec($ch); curl_close($ch); $size = GetBetween($naglowki, 'Content-Length: ', 'C'); $nrange = GetBetween($naglowki, 'Content-Range: bytes ', 'C'); $filename = basename($link); header('HTTP/1.1 206 Partial Content'); header('Content-Range: bytes ' . $nrange); header('Content-Disposition: ' . 'attachment; filename="' . $filename . '"'); header('Accept-Ranges: bytes'); header('Content-Type: application/x-unknown'); header('Content-Transfer-Encoding: binary'); header('Content-Length: ' . $size); header("Cache-control: private"); $ch = curl_init($link); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13'); curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_RANGE, $r_start.'-'); curl_setopt ($ch, CURLOPT_COOKIEJAR, '/tmp/link'.$nrplik.'.txt'); curl_setopt ($ch, CURLOPT_COOKIEFILE, '/tmp/link'.$nrplik.'.txt'); curl_exec($ch); curl_close($ch); } else { $ch = curl_init(trim($link)); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13'); curl_setopt($ch, CURLOPT_NOBODY, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt ($ch, CURLOPT_COOKIEJAR, '/tmp/link'.$nrplik.'.txt'); curl_setopt ($ch, CURLOPT_COOKIEFILE, '/tmp/link'.$nrplik.'.txt'); $naglowki = curl_exec($ch); //echo $naglowki; curl_close($ch); $size = GetBetween($naglowki, 'Content-Length: ', 'C'); $filename = basename($link); header('HTTP/1.1 200 OK'); header('Content-Disposition: ' . 'attachment; filename="' . $filename . '"'); header('Accept-Ranges: bytes'); header('Content-Type: application/x-unknown'); header('Content-Transfer-Encoding: binary'); header('Content-Length: ' . $size); header("Cache-control: private"); $ch = curl_init(trim($link)); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13'); curl_setopt ($ch, CURLOPT_COOKIEJAR, '/tmp/link'.$nrplik.'.txt'); curl_setopt ($ch, CURLOPT_COOKIEFILE, '/tmp/link'.$nrplik.'.txt'); curl_exec($ch); curl_close($ch); } exit; ?> Czy jest jakikolwiek sposób, żeby nie dostawać podobnego bana? Czy błąd może leżeć po stronie skryptu? Prosiłbym o sprawdzenie skryptu pod tym względem, będę na prawdę wdzięczny! Pozdrawiam i czekam na odpowiedź. Udostępnij ten post Link to postu Udostępnij na innych stronach
Kimi2007 2 Zgłoś post Napisano Listopad 29, 2010 Widzę że Skrypt jest napisany ok. A Gdzie masz serwer na którym ten skrypt jest odpalany ? Udostępnij ten post Link to postu Udostępnij na innych stronach
oski225 0 Zgłoś post Napisano Listopad 29, 2010 Już próbowałem na kilku: - Spacerich - Virpus - Rapidspeeds i ban występuje na każdym. Udostępnij ten post Link to postu Udostępnij na innych stronach
xorg 693 Zgłoś post Napisano Listopad 29, 2010 Na 100% idzie z ich strony, jakiś firewall. Udostępnij ten post Link to postu Udostępnij na innych stronach
oski225 0 Zgłoś post Napisano Listopad 29, 2010 Ok, dziękuje bardzo za odpowiedzi. W takim razie nic z tym nie zrobię. Pozdrawiam i jeszcze raz dziękuje. Udostępnij ten post Link to postu Udostępnij na innych stronach