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

02.05.2007, 11:12
|
|
Познавший АНТИЧАТ
Регистрация: 02.05.2006
Сообщений: 1,191
Провел на форуме: 7364332
Репутация:
1276
|
|
Парсер и чекалка проксей!
Пишу скрипт по парсеру и чекалке проксей, накатал быстро скрипт, только он гад такой работает сильно долго... Если кто-нибудь сможет переделать его и увеличить буду очень блогодарен. Срочно нужно....
PHP код:
<?php
set_time_limit(0);
$fp = fsockopen("proxy.shternov.ru", 80, $errno, $errstr, 30);
if ($fp)
{
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: proxy.shternov.ru\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
$fgets = '';
$content = '';
while(!feof($fp))
{
$content .= fread($fp,8192);
}
fclose($fp);
preg_match_all ("#(bgcolor=\#FFFFFF><td>)(.*?)(<\/td><td>)(.*?)(<\/td><td title=)#si", $content, $matche1);
$count_proxy = count($matche1[2]);
for ($i = 0; $i <= $count_proxy; $i++)
{
$fp = fsockopen($matche1[2][$i], $matche1[4][$i], $errno, $errstr, 30);
if ($fp)
{
$out = "GET http://www.ya.ru/ HTTP/1.1\r\n";
$out .= "Host: ya.ru\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
$fgets = '';
$content = '';
while(!feof($fp))
{
$content .= fread($fp,8192);
}
fclose($fp);
preg_match_all ("#(<title>)(.*?)(<\/title>)#si", $content, $matche1);
if($matche1['2']['0'] == 'Яndex')
{
// echo "$matche1[2][$i]:$matche1[4][$i]<br>".flush();
$file = fopen ("proxy/proxy.txt","a+");
$str = "$matche1[2][$i]:$matche1[4][$i]\n";
if ( $file )
{
fputs ( $file, $str);
}
fclose ($file);
}
}
}
}
?>
|
|
|

02.05.2007, 11:51
|
|
Участник форума
Регистрация: 09.12.2005
Сообщений: 162
Провел на форуме: 701592
Репутация:
91
|
|
Последний раз редактировалось Slon; 02.05.2007 в 12:21..
|
|
|

02.05.2007, 12:10
|
|
Постоянный
Регистрация: 06.06.2006
Сообщений: 515
Провел на форуме: 1985206
Репутация:
963
|
|
2Slon
Он вообще-то на Perl написан, а там интерфейс для создания потоков есть, в отличие от PHP. Про "переделку в cgi": сотри и подумай, что написал.
2DIAgen
Погугли на тему "пул неблокирующих сокетов"
|
|
|

02.05.2007, 13:12
|
|
[Лишённый самовыражени
Регистрация: 16.01.2005
Сообщений: 1,787
Провел на форуме: 9751379
Репутация:
3812
|
|
http://helllabs.net/
__________________
|
|
|

02.05.2007, 13:25
|
|
Познавший АНТИЧАТ
Регистрация: 02.05.2006
Сообщений: 1,191
Провел на форуме: 7364332
Репутация:
1276
|
|
Сообщение от +toxa+
http://helllabs.net/
Тоха мне надо что бы скрипт лежал на серваке и все сам делал через крон...
|
|
|

02.05.2007, 15:52
|
|
♠ ♦ ♣ ♥
Регистрация: 18.05.2006
Сообщений: 1,828
Провел на форуме: 8042357
Репутация:
3742
|
|
Не советоал бы чекер делать на пхп) скорость не ахти )
__________________
Привет! Меня зовут Джордж, и я хотел бы рассказать вам про реинкарнацию (ц) 2x2
|
|
|

03.05.2007, 10:26
|
|
Познавший АНТИЧАТ
Регистрация: 02.05.2006
Сообщений: 1,191
Провел на форуме: 7364332
Репутация:
1276
|
|
Сообщение от blackybr
Не советоал бы чекер делать на пхп) скорость не ахти )
По идеи мне скорость не нужна, просто мне нужны живые прокся, и проверка будет идти раз в сутки и все, сейчас буду разбераться, может что-нибудь смого придумать....
|
|
|

03.05.2007, 12:41
|
|
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме: 3493315
Репутация:
1228
|
|
PHP код:
$fp = fsockopen($matche1[2][$i], $matche1[4][$i], $errno, $errstr, 30);
Лимит времени поставь меньше, есле прокся мертвая незачем 30 секунд ждать. достаточно 3
PHP код:
while(!feof($fp))
{
$content .= fread($fp,8192);
}
preg_match_all ("#(<title>)(.*?)(<\/title>)#si", $content, $matche1);
if($matche1['2']['0'] == 'Яndex')
а не проще ли проверять номер статуса страницы? 200 OK
и тогда не обязательно всю страницу грузить! достаточно загрузить первую строку.
PHP код:
if(strstr(fgets($fp),'200 OK'))
.....
Последний раз редактировалось nc.STRIEM; 03.05.2007 в 12:46..
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|