
12.04.2007, 02:05
|
|
IQ- 137%
Регистрация: 15.06.2004
Сообщений: 441
Провел на форуме: 1212666
Репутация:
662
|
|
Сообщение от mamamot
Очередной скрипт на php.
Сегодня мы нашли сайт с кучей прокси. Но они там, как назло, в ужасном виде:
Код:
HTTP 203.94.89.112 80 No UnResolved UnResolved 704 No
HTTP 66.165.172.163 80 No UnResolved UnResolved 562 No
HTTP 212.227.80.22 3128 No UnKnown s15179588.rootmaster.info 4328 No
HTTP 219.95.65.250 80 No UnResolved UnResolved 1047 No
HTTP 85.88.182.139 3128 No Russia not-defined-pppoe.amur.ru 1032 No
т.е. по одной прокси и порту в строке, но с кучей мусорной инфы
мы превратим его в нормальный вид так:
PHP код:
<?php
//////////////////////////////////////////////////////////////////
//proxy_list_generator.php
//creats an ip:port proxylist
//coded by mamamot, 2007
//////////////////////////////////////////////////////////////////
//задаем регулярные выражения
$ip_regex="/([0-9]|[0-9][0-9]|[01][0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[0-9][0-9]|[01][0-9][0-9]|2[0-4][0-9]|25[0-5])){3}/";
$port_regex="/([\s])(\d|[1-9]\d|[1-9]\d{2,3}|[1-5]\d{4}|6[0-4]\d{3}|654\d{2}|655[0-2]\d|6553[0-5])([\s])/";
//читаем файл
$raw=file("rawproxy.txt");
//счетчик
$counter=0;
//перебираем каждую строку
foreach($raw as $line)
{
$is_ip_match = preg_match($ip_regex, $line, $ipmatch);
if($is_ip_match==1)
{
$ip=$ipmatch[0];
$is_port_match=preg_match($port_regex, $line, $port_match);
if($is_port_match==1)
{
$port=$port_match[0];
//убираем символы табуляции
$port=str_replace("\t","",$port);
//добавляем в строку. Замените \r\n на \n если работете на никсах
$output .= $ip.':'.$port."\r\n";
$counter++;
}
}
}
//пишем в файл
file_put_contents("proxies.txt", $output);
echo "done succesfully:".$counter."items parsed";
?>
да еще и посчитаем заодно 
Кто вас так учил писать регулярные выражения?)
Ты что.Я ужаснулся когда это увидел.
PHP код:
<?php
$data="HTTP 203.94.89.112 80 No UnResolved UnResolved 704 No
HTTP 66.165.172.163 80 No UnResolved UnResolved 562 No
HTTP 212.227.80.22 3128 No UnKnown s15179588.rootmaster.info 4328 No
HTTP 219.95.65.250 80 No UnResolved UnResolved 1047 No
HTTP 85.88.182.139 3128 No Russia not-defined-pppoe.amur.ru 1032 No";
preg_match_all("/[\d]+\.[\d]+\.[\d]+\.[\d]+\s[\d]+/i",$data,$match);
print_r($match);
?>
__________________
Последний раз редактировалось nc.STRIEM; 12.04.2007 в 02:09..
|
|
|