Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
[function.fsockopen]: unable to connect to |

03.01.2010, 07:56
|
|
Познавший АНТИЧАТ
Регистрация: 15.01.2008
Сообщений: 1,166
Провел на форуме: 2459557
Репутация:
606
|
|
[function.fsockopen]: unable to connect to
Напейсал быдлоскрипт, который логинится на одном сайте, а затем в цикле - качает страницу, парсит ссылку на ней при помощи preg_match, качает её.
через некоторое время скрипт вылетает с такой ошибкой, что типа не может приконектится.
Скрипт запускается на VDSе (причем пробовал уже на трех - везде такая фигня), целевой сайт тормозить не может - он довольно крупный (соц сеть средней крупности).
Что делать? В чем может быть проблема? Как решить её?
|
|
|

03.01.2010, 09:10
|
|
Познающий
Регистрация: 17.10.2006
Сообщений: 83
Провел на форуме: 552846
Репутация:
55
|
|
может целевой сайт блокирует от атак? (не просто тормозит а именно блокирует если подозревает что качает бот)
|
|
|

03.01.2010, 14:44
|
|
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
Провел на форуме: 2603363
Репутация:
278
|
|
Античат - форум экстрасенсов.
Может выложишь скрипт, тебе тогда и помогут.
|
|
|

14.01.2010, 00:54
|
|
Познавший АНТИЧАТ
Регистрация: 15.01.2008
Сообщений: 1,166
Провел на форуме: 2459557
Репутация:
606
|
|
Сообщение от xena-mil1
может целевой сайт блокирует от атак? (не просто тормозит а именно блокирует если подозревает что качает бот)
Даже не знаю. Впринципе возможно такое. Но я вроде и реферрер шлю и куки и UserAgent нормальный.
Сообщение от Deathdreams
Античат - форум экстрасенсов.
Может выложишь скрипт, тебе тогда и помогут.
index.php
PHP код:
<?php
set_time_limit(0);
ini_set('memory_limit', '256M');
error_reporting(E_ALL);
ini_set('display_errors', 1);
include('getpost.php');
$uza = 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)';
$acc = 'login:parol';
$bot = explode(':', $acc);
$login = $bot[0];
$parol = $bot[1];
############## Авторизация ########################
$authdata = post('server.ru', "/script", "http://google.ru/", $uza, '', 'Login=' . $login . '&Password=' . $parol); // запрос на авторизацию
$authcooki = getcookie($authdata); // получение куков
while(1){ // бесконечный цикл
$gett = get('server.ru', '/script_start_page', 'http://server.ru/', $uza, $authcooki, true); // получение самой первой страницы парсинга
$startpage = !isset($targetpage) ? $gett : $targetpage;
if(preg_match('|регулярное выражение для поиска ссылки|', $startpage, $link)){
$targetpage = get('server.ru', $link[1], 'http://server.ru/', $uza, $authcooki, true); // переход по нужной мне ссылке
unset($link);
}
}
?>
getpost.php
PHP код:
<?php
function getlocation($str){
preg_match("%Location: (\S+)%i", $str, $locat);
$url = parse_url($locat[1]);
return $url['path'] . '?' . $url['query'];
}
function get($host, $path, $ref, $ua, $cook, $dwnld = true)
{
$line="";
$fp=fsockopen($host, 80, $errno, $errstr, 10);
if(!$fp){
die($errstr($errno));
}else{
$headers = "GET $path HTTP/1.1\r\n";
$headers .="Host: $host\r\n";
$headers .="User-Agent: $ua\r\n";
$headers .="Accept-Language: ru,ru-RU;q=0.9,en;q=0.8\r\n";
$headers .="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
$headers .="Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n";
$headers .="Referer: $ref\r\n";
$headers .="Cookie: $cook\r\n";
$headers .="Connection: Close\r\n\r\n";
fwrite($fp, $headers);
if($dwnld == true){
while(!feof($fp)){
$line .= fgets($fp, 4096);
}
}
}
fclose($fp);
return $line;
}
function post($host, $script, $ref, $ua, $cook, $cont){
$respons="";
$postsock = fsockopen($host, 80, $errno, $errstr, 10);
if (!$postsock) echo $errstr($errno);
else
{
$head = "POST $script HTTP/1.1\r\n";
$head .= "Host: $host\r\n";
$head .= "User-Agent: $ua\r\n";
$head .= "Accept-Language: ru,ru-RU;q=0.9,en;q=0.8\r\n";
$head .= "Connection: close\r\n";
$head .= "Referer: $ref\r\n";
$head .= "Cookie: $cook\r\n";
$head .= "Content-Type: application/x-www-form-urlencoded\r\n";
$head .= "Content-Length: " .strlen($cont). "\r\n";
$head .= "\r\n$cont\r\n";
fwrite($postsock, $head);
while(!feof($postsock)){
$respons .= fgets($postsock, 4048);
}
fclose($postsock);
}
return $respons;
}
function getcookie($str){
$authcooki = '';
preg_match_all('/Set-Cookie:\s([^;]+)/i', $str, $temp);
$temp[1] = array_unique($temp[1]);
foreach($temp[1] as $cook){
$authcooki .= $cook . '; ';
}
return $authcooki;
}
?>
|
|
|

14.01.2010, 15:56
|
|
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
Провел на форуме: 2603363
Репутация:
278
|
|
Скрипт выполняется на хостинге?
Попробуй простое подключение к гуглу,
PHP код:
if(fsockopen('google.ru', 80)) { echo 'good'; } else { echo 'bad'; }
|
|
|

14.01.2010, 17:56
|
|
Познавший АНТИЧАТ
Регистрация: 15.01.2008
Сообщений: 1,166
Провел на форуме: 2459557
Репутация:
606
|
|
Сообщение от Deathdreams
Скрипт выполняется на хостинге?
Попробуй простое подключение к гуглу,
PHP код:
if(fsockopen('google.ru', 80)) { echo 'good'; } else { echo 'bad'; }
Да естественно, коннект есть, все работает - читай первый пост. Проблема в том, что скрипт после нескольких десятков итераций глохнет с warning-ом.
|
|
|

14.01.2010, 19:44
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме: 2769640
Репутация:
1304
|
|
попугай Поставьте задержки при переходе на страницу. Скорее всего блочат по превышению количества запросов в минуту.
Ну или просто - не останавливайте скрипт по ошибке (заглушив ошибку с помощью @ и убрав die(); ), а повторяйте текущий запрос после задержкт
__________________
Любая действущая программа устарела.
Создайте систему, которой сможет пользоваться даже дурак ,и только дурак захочет ею пользоваться.
Как правильно задавать вопросы: _http://www.yakimchuk.ru/questions.htm
|
|
|

16.05.2010, 10:49
|
|
Новичок
Регистрация: 12.05.2010
Сообщений: 5
Провел на форуме: 4643
Репутация:
0
|
|
ребята, у меня такая же ошибка возникла. причём это произошло после переноса обоих сайтов (и того на котором скрипт и того к которому скрипт подключается) на новый впс. в чём может быть проблема?
PHP код:
if(fsockopen('google.ru', 80)) { echo 'good'; } else { echo 'bad'; }
- возвращает good
PHP код:
if(fsockopen('mysite.ru', 80)) { echo 'good'; } else { echo 'bad'; }
- возвращает bad
Последний раз редактировалось gr[e]y; 16.05.2010 в 10:53..
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|