|
Глава 1. Итак приступим... Для начала немного теории. В самом начале освоения интернет-технологий для меня была проблема понимания основ взяимодействия клиентской прграммы и сервера. В основе любой спамилки лежит механизм позволяющий отсылать данные скрипту, находящемся на каком-либо сервере. Откуда мы берем адреса этих скриптов - это отдельная тема В рамках данного краткогокурса будем считать что мы имеем некоторое количество адресов, посылая на которые правильно сформированные пакеты данных мы добъемся появления интересующих нас данных на каких-либо страницах в Интернете, где их (наши информационные блоки со ссылками) может найти и проиндексироватьпоисковый робот. Протокол HTTP предусматривает достаточно много способов взаимодействия клиента (браузера) и сервера. Нас из всего многообразия сейчас интересуют два метода - GET и POST. GET При использовании матода GET происходит передача данных посредством добавлкния их в строку запроса адресованного серверу. Плюсы: простота использования, наглядность, большая универсальность Минусы: необходимость кодирования данных содержащих служебные символы ("'@:,.), если на сервере или прокси-сервере ведется лог обращений,то все ваши запросы, вместе с параметрами будут в них зафиксированы, ограничение на длинну передаваемых данных. POST Пожалуй, самый используемый метод при передаче данных к скриту в интернете. Данные передаются в телезапроса после всех служебных полей. Данные тоже подлежат предварительному кодированию для корректной передачи серверу (исключение, если используется способ передачи multipart-form, данные размещяются в запросе определенным образом, но сами массивы данных никаким образом не транформируются. этот способ применяется очень часто для аплоада файлов на сервер). Плюсы: удобство програмной реализации,данные не "светятся" влгах серверов Минусы: меньшая наглядность, требует некоторых основных познаний в интернет-технологиях, встречались проксики резавшие POST-пакеты. Далее я привожу простой скрипт, на примере которого я объясню основы написания простой спамилки... И каждый желающий сможет развить его по своему усмотрению. Следующаяглава будет посвящена подробному разбору приведенного скрипта. <?php Error_Reporting(1+2+4); $PostUrl="http://example.com/post.php"; $PostData="Text=text&User=user"; $OkString=""; if (!empty($HTTP_GET_VARS)) extract($HTTP_GET_VARS); if (!empty($HTTP_POST_VARS)) extract($HTTP_POST_VARS); $Url=substr($PostUrl,strpos($PostUrl,"//")+2); $Url=substr($Url,0,strpos($Url,"/")); $HostName=substr($PostUrl,strpos($PostUrl,"//")+2); $HostName=substr($HostName,strpos($HostName,"/")); if(strpos($HostName,":")) { $HostPort=substr($HostName,strpos($HostName,":")+1); if(!is_numeric($HostPort)) { $HostPort=80; } } else { $HostPort=80; } $fp=fsockopen($HostName, $HostPort, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno)<br />\n"; } else { $out = "POST $Url HTTP/1.1\r\n"; $out .= "Host: $HostName\r\n"; $out .= "Content-type: application/x-www-form-urlencoded\r\n"; $out .= "Connection: Close\r\n"; $out .= "Content-length: ".strlen($PostData)."\r\n\r\n".$PostData; stream_set_timeout($fp, 30); fputs($fp, $out); if(strlen($OkString)) { $Page=""; while (!feof($fp)) { $Page.=fgets($fp, 128); } if(strpos($Page,$OkString)) echo "Ok"; else echo "Error"; } else { if($errno===0) echo "Ok"; else echo "Error"; } fclose($fp); } ?>
|
Автор: BiOM Источник и обсуждение статьи
Просмотров: 1427
 Ваш комментарий будет первым | | |