Как ускорить спамилку

Опубликовано admin 30.01.2007

Ну на счет кэ?ирования - хз. Все зависит от того что сэйвить.
Если сохранять только код формы (желательно уже преобразованный во внутренний формат), то в целом может и ничего. Но на базах боль?е 1000к - имхо не прокатит. Точнее содержание и периодическая проверка всей этой мути по себестоимости может превысить выхлоп. Получается, что ?аблоны все-таки рулят =) Сам склоняюсь именно к ним.

На счет заспамленности. Пара вариантов. Периодический прогон по базе фильтра измеряющего размер документа, где расположена форма (если не кэ?ировали и нет ?аблона). ?ли прямо на ходу тоже самое.
Первый вариант луч?е ибо заодно отфильтрует 404 и тому подобную хрень.

Размер удаленного документа измерить легко. При получении первого пакета приходит поле Content-lenght в котором указана длинна документа. Соответственно, отдельный скрипт проверки базы особой нагрузки не создаст и по идее должен вообще летать =)

? последнее: не забывайте, что в поле hidden формы может сохраняться ва? ip, а документ запарсивается обычно без прокси. ?бо медленно =)))

Как работать с ftp

Опубликовано admin 24.01.2007

Втыкайте! Работаем с ftp черз PHP.

Основные команды

Команда подключения к ftp серверу
$id=ftp_connect (”host”[,"port"[,"timeout"]]);

port - порт ftp по умолчанию равен 21.
timeout - на какое время собираемся открывать соединение. По умолчанию 90 секунд.
$id - тут хранится идентификатор соединения

Пример:
$ftpserv=’ftp.example.com’;
$id = ftp_connect($ftpserv) or die(”Не удалось установить соединение с $ftpserv”);

Команда входа (login)
$res=ftp_login($id, “user”, “pass”);

Первым параметром идет идентификатор открытого соединения.
user - ва? юзернейм
pass - пароль

В $res окажется TRUE в случае успеха и FALSE в случае неудачи.

Примеры:
1. if(!ftp_login($id, “user”, “pass”)) exit(’не подключился’);
Произойдет автоматическое завер?ение скрипта
2. if(@ftp_login($id, “user”, “pass”))
@ - блокирует вывод на экран сообщения об о?ибке подключения

Завер?ение соединения
ftp_close($id);

$id - идентификатор.

Возвращает TRUE в случае успе?ного завер?ения или FALSE в случае возникновения о?ибки.
ftp_quit - псевдоним ftp_close.

Выполняет команду на ftp сервере
ftp_exec($id, ‘command’);

$id - соединение
command - ва?а команда

Реально - по?лет на сервер вот такую ?туку: SITE EXEC command. Так что если знаете обычные ftp команды, то этой ?тукой можно заменить все, что предлагает PHP.
Вернет TRUE или FALSE. Причем TRUE отдаст, если сервер вернет код ответа 200 (типа все гут).

ftp_site($id, ‘command’);
По синтаксису абсолютно тоже что ftp_exec, только вместо SITE EXEC отправит SITE.

ftp_raw($id, ‘command’);
По синтаксису абсолютно тоже что ftp_exec, только выполнит совсем произвольную команду.

Работа с директориями

Команда получения имени текущей директории
$dirname=ftp_pwd($id);

$id - тут надо отправить идентификатор соединения

В $dirname окажется либо название текущей директории, либо FALSE если команда не пройдет

Команда смены текущей директории
ftp_chdir($id, ‘new_dir’);

$id - соединение
new_dir - название желаемой директории

Вернет TRUE или FALSE понятно в каких случаях.

Команда перехода в родительскую директорию
ftp_cdup($id);

$id - идентификатор

По сути дела является сокращенной командой ftp_chdir. Вернет TRUE в случае успе?ного выполнения и FALSE в случае неудачи.

Команда создания папки
ftp_mkdir($id,’dirname’);

$id - идентефикатор соединения полученный из ftp_connect
Второй парамет - имя ва?ей папки

В случае успеха вернет имя созданной папки. Если не прокатит то отдаст FALSE

Пример:
if(ftp_mkdir($conn_id, $dir))
Если вернется не FALSE, то выполняем. Если FALSE, то попадем в else

Команда удаления папки
ftp_rmdir($id,’dirname’);

$id - идентефикатор соединения
dirname - имя папки

Возвращает TRUE или FALSE.
Пример: точно также как ftp_mkdir

Команда переименования директории или файла
ftp_rename($id, $oldname, $newname);

$oldname - старое имя
$newname - новое имя

Возвращает TRUE в случае успе?ного завер?ения или FALSE в случае возникновения о?ибки.

Работа с файлами

Загружает файл на сервер
ftp_put ($id, $remote_file, $local_file, $mode [, $startpos]);

$id - идентификатор соединения
$remote_file - путь к файлу на удаленном сервере
$local_file - путь к файлу на локальной ма?ине
$mode - метод передачи: FTP_ASCII или FTP_BINARY (FTP_BINARY - передает файл без изменений)
$startpos - позиция в файле с которой начинается загрузка

Вернет TRUE или FALSE

Пример:
ftp_put($conn_id, ’somefile.txt’, ‘file.txt’, FTP_ASCII);

ftp_fput($id, $remote_file, $hd, $mode [, $startpos]);

$hd - идентификатор файла

То же самое что и ftp_put только для уже открытого файла.
Пример:
$fp = fopen($file, ‘r’);
ftp_fput($conn_id, ’somefile.txt’, $fp, FTP_ASCII);

Есть еще ftp_nb_put и ftp_nb_fput с такими же синтаксисами соответственно. Загрузка файла происходит в асинхронном режиме. То есть можно параллельно выполнять еще какие-нибудь команды. Для них есть команда ftp_nb_continue($id), которая продалжает выполнение операции.
Вернуть могут: FTP_FAILED, FTP_FINISHED или FTP_MOREDATA.

Скачивает файл с сервера
ftp_get($id, $local_file, $remote_file, $mode [, $resumepos]);
ftp_fget($id, $hd, $remote_file, $mode [, $resumepos]);

$id - идентификатор соединения
$local_file - файл на локальной ма?ине
$remote_file - файл на удаленной ма?ине
$mode - метод
$resumepos - позициа в файле
$hd - идентификатор открытого файла на ЛОКАЛЬНОЙ МАШ?НЕ

С ftp_nb_get и ftp_nb_fget тоже самое, что и с put-ами.

Удаление файла
ftp_delete($id, $path);

$path - путь к файлу

Вернет TRUE или FALSE

Получение списка файлов в директории
ftp_nlist($id, $directory);
ftp_rawlist($id, $directory [, $recursive]);

$directory - адрес директории
$recursive - отправит команду LIST -R

Обе вернут массив типа list. В первом случае это будет список файлов. Во втором просто построчные ответы сервера.

Установка прав доступа
ftp_chmod($id, $mode, $filename);

$id - соединение с сервером
$mode - новые права доступа (’0644′ или ‘0777′)
$filename - удаленный файл

Возвращает новые права доступа к файлу в случае успеха или FALSE в случае о?ибки.

Получение размера файла
ftp_size($id, $remote_file);

Возвращает размер файла, или -1 при возникновении о?ибки.

Вот вроде бы и все. Команды во?ли не все, но и этих вполне достаточно. Втыкайте!

Про прокси

Опубликовано admin 22.01.2007

Очень интересный вопрос всплыл сегодня на форуме умакса: что будет, если парсить гугл через неанонимные прокси общего доступа?

Действительно, со спамом рецепт ясен: внимательно следить за анонимностью (а то многие передают-таки айпи?ник), фильтровать коденет и прочую хню. А вот с парсингом - никогда даже не задумывался. Неанонимных проксей - боль?е раз в 10, тем более если у вас многопоточность, то это было бы совсем здорово. Заодно во время парсинга можно их и на анонимность прочекать…

http://www.umaxforum.com/topic/3/18628/

Ностальгия

Опубликовано admin 18.01.2007

?скал сервис для рисования кнопок. Адреса совсем не помнил начал рыться по старому блогу и вспомнил еще об одном… О моем первом БЛОГЕ =))

Аж слеза умиления навернулась =))))

А какие у вас первые сайты были?

Притча

Опубликовано admin 18.01.2007

Три бабочки, подлетев к горящей свече, принялись рассуждать о природе огня. Одна, подлетев к пламени, вернулась и сказала:
— Огонь светит.
Другая подлетела поближе и опалила крыло. Прилетев обратно, она сказала:
— Он жжётся!
Третья, подлетев совсем близко, исчезла в огне и не вернулась. Она узнала то, что хотела узнать, но уже не смогла поведать об этом остав?имся.

Получив?ий знание ли?ается возможности говорить о нём, поэтому знающий молчит, а говорящий не знает.

Породия

Опубликовано admin 16.01.2007

смотрим на баннер справа, потом смотрим сюда:

Странности апдейта PR

Опубликовано admin 15.01.2007

Ребята, внимательно проследите, что стало с адресами, с которых у вас стоял 301 редирект! ? в комменты

Про спам в комменты

Опубликовано admin 15.01.2007

Некоторое время, тут кто-то хоро?о спамил блог доменами в зоне инфо. Вот не понимаю я фи?ки: на кой хрен спамить ссылками с rel=”nofollow” - это новое слово в спаме? =)

Ну да лабдно. Зато заметил очень интересную ?туковину. У чувака в начале и в конце втыкалась какая-то последовательность символов, абсолютно нечитаемая. Почесав репу понял, что что-то за?ифрованное в md5.

md5
- алгоритм ?ифрования. Достаточно стойкая ?тука.
По крайней мере ни разу не слы?ал, чтобы кто-то рас?ифровал то, что им за?ифровано, не зная хотя бы куска начального слова.

?спользуется в основном для сохранения пароля. Фи?ка в том, что одно и тоже слово всегда даст один и тот же код после ?ифрования. В первый раз пароль ?ифруется и сохраняется в базу данных или еще куда-нибудь. А при попытке залогиниться, полученный пароль также ?ифруется и сравнивается с тем что в базе. Если совпало, то велкам, если нет, то гоу ту нах…

Ну это так, для общего развития. Вернемся к на?им md5-кодам в спаме. Это же почти гениальная идея!

При каждом сеансе спама генерируем md5 ключ, сохраняем в базу статистики, и втыкаем в каждое сообщение. Так как он достаточно боль?ой по длинне, то с вероятностью в 99% он будет уникальным. Посему после спама втыкаем ключ в гуглю и смотрим, где на?и посты про?ли, а где нет.

PS: про md5 - соврал. Не ?ифрование, а выработка чексуммы

Желание банить

Опубликовано admin 09.01.2007

Наверное у каждого возникало желание что-нибудь или кого-нибудь забанить. Вот иавтор не исключение.

В это утро, ничто ничего не предвещало, и было все как обычно за?ибись. Проснулся, помылся, побрился… А потом за?ел на умаксфорум и открыл около пяти страниц. ? все. Опера подохла. Процессор показал свои 100%, оперативка сказала, что опера сожрала 66 мегабайт и тоже кончилась… Прищучил и запустил заново.

Потом почесал репу, от чего это умаксфорум так загрузит мой древний комп. Оказалось там фле?ка сверху висит. Давно уже с опаской поглядываю на фле?-баннеры, так как по слухам через них можно заливать всякую хрень на компьютеры жертв, да и жрут они (если не оптимизированы) немеренно. Подумал как это дело раз и навсегда прихлопнуть. Оказалось, что все очень просто и по идее должно быть в любом браузере:

  1. Заходим в настройки
  2. ?щем список блокируемого содержимого
  3. Настраиваем

Что настраиваем? А просто вписываем вместо блокируемого урла вот такую хрень: “*.swf”
? никакой фле? боль?е не заработает. Ну если что всегда можно отключить…

?дем даль?е. Что еще достало. ?грался в ogame.ru, а там все время в неподходящих местах всплывают баннеры адсенса. Тоже порядком поднадоело. Проследил. Побаловался.

Да простит меня автор adsenseblogging, вписываем: ”http://pagead2.googlesyndication.com/*” и рекламу от гугла боль?е не смотрим. (Про обязательность звездочки не знаю, но работает)

Уверен, что Вы найдете еще кучу адресов, реклама с которых Вам не нравится. Удачи. =)

Придется задержаться

Опубликовано admin 09.01.2007

На 1-2 дня задерживаю страт.
Причины:

  1. Сессия
  2. Баги
  3. Переиндексация гуглем

Copyright © 2007 Doorway blog. All rights reserved.