Skocz do zawartości
Zaloguj się, aby obserwować  
oski225

Błąd w moich skryptach...

Polecane posty

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

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

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×