Hacker's PHP

Xakep, номер #043, стр. 043-046-3


Наиболее просто задача решается использованием уже написанного буржуйскими программистами class'а - "mime_mail".

Этот класс предоставляет довольно широкие возможности по работе с почтой, избавляя от необходимости вручную строить сообщения.

А вот скрипт, показывающий, каким образом можно аттачить файлы.

<?

include "mime_mail.inc";

$file="big_file.jpg";

$content_type="image/jpeg";

$f=fopen($file, "r"); //Читаем файл

$filesize= filesize($file);

$data=fread($f, $filesize);

fclose($f);

$mail=new mime_mail; #создаем копию объекта

$mail->from="hacker@yuorhost.com";

$mail->to="hacker@isp.ru";

$mail->subject="Файло!";

$mail->body="Держи файл!";

$mail->add_attachment($data, $file, $content_type);

$mail->send();

?>

И делов-то ;)

Накрутка голосований

Ну вот и подошли к основной задаче. Не так уж это просто - грамотно накрутить голосование, ведь в абсолютном большинстве случаев voting-скрипт ведет статистику по Ip-адресам голосовавших, дабы избежать повторных волеизъявлений. Есть, однако, анонимные proxy-сервера, позволяющие оставлять в логах разные ip'шники, что, зачастую, довольно эффективно. Но опять же, если накручивать с сервера, притом желательно буржуйского, т.к. почти все проксики находятся за М9, а стало быть, связь с ними лучше из забугорных каналов. Сразу скажу, это довольно серьезная задача, под которую я наворотил довольно сильный скрипт.

Сценарий будет использовать в работе текстовый файл с адресами анонимных проксиков, где порт отделяется от хоста двоеточием. Например, 217.65.34.11:3128 (адрес я придумал от балды). Следует заметить, что в PHP нет как таковой поддержки proxy-серверов, поэтому мне пришлось слепить класс (class), позволяющий осуществлять работу через прокси. Приводить здесь код класса я не буду - незачем; если тебе интересно, ты ведь всегда его можешь посмотреть.

В этом class'e создана функция px(), принимающая две обязательные переменные (хост и URL получаемого файла) и одну необязательную (номер порта web-сервера, по умолчанию - 80). Этот класс - сердце нашего скрипта, поэтому начинается накрутчик довольно стандартно:

<?

include"proxy.inc";

$prox=new proxy;

?>

А вот продолжение... Я писал его минут 40(!) - постоянно что-то не работало ;). В итоге я приблизился если не к идеалу, то, по крайней мере, рабочему варианту:

<?

include "proxy.inc"; //Подключаем класс

$prox=new proxy; //делаем копию объекта

if(isset($submit)) //Нажата ли кнопка отправки формы?

{

$prox_arr=file("proxies.txt"); //Режем в массив файл с проксиками

$num_prox=count($prox_arr); //считаем количество элементов в массиве

Назад на стр. 043-046-2  Содержание  Вперед на стр. 043-046-4