Война продолжается
С начала активных боевых действий против попингуев прошло уже достаточно много времени. Я, честно говоря, ожидал гораздо большей активности со стороны пользователей да и самого автора скрипта блога. Однако ж тишина... Может это только мне попингуи доставляют неудобства?
Ладно, речь не о том. Я считаю попингуйство злом и намерен продолжать с ним бороться.
Предыдущая версия "Привратника" работала довольно сносно, но, к сожалению, не долго - создатели "пингуляторов" быстро поняли свои ошибки и приняли меры. Теперь простой анализ частоты хитов уже не помогает. Что ж, значит пришло время сделать выводы и пересмотреть стратегию.
Чуть более недели назад старый "Привратник" на этом сайте был списан на пенсию и его место занял новый, переписанный заново и использующий совершенно новый подход. Теперь он не смотрит ни на IP-адрес посетителя, ни на его юзер-агент, ни на все остальные "атрибуты" - это просто не нужно.
Вместо этого он выкачивает страницу, с которой якобы пришел посетитель и пытается найти в ее коде ссылку на запрашиваемую страницу. Ежели нашел - значит все в порядке и можно пропускать хит дальше в блог. Ну а если ссылку обнаружить не удалось, то попингуй получает болт калибра 404, а блог даже не подозревает, что кто-то пытался на него зайти.
Неделю скрипт работал в тестовом режиме - ничего реально не делал, лишь подробно описывал в логах свои мечты и желания - кого он признал "живым", а кого с удовольствием послал бы на три веселых цифры. Анализ этого лога позволил выявить некоторые недочеты и ошибки, внести исправления и, наконец, сегодня дать таки ему право безжалостно херить всех неугодных.
Итак, начат второй этап тестирования. Для чистоты эксперимента статистика блога (уже в который раз) была обнулена и снова выставлены на общий обзор "друзья сайта". Любуйтесь, комментируйте. Самые активные смогут первыми получить сей скрипт в свое распоряжение.
Дополнение от 5 июня.
Сегодня обнаружил досадную ошибку в скрипте - он добросовестно определял попингуйские сайты, но по-привычке никаких мер по присечению их деятельности не предпринимал. 
Сейчас положение исправлено, но пришлось снова очистить статистику... 
Нагрузку я из всех сил стараюсь снизить. Но она прямо-пропорциональна количеству переходов. Благодаря кэшированию ее удается уменьшить в десятки раз, так что на сегодняшний день это уже можно считать не критичным.
Как писал в предыдущих постах, версия для пользователей появится только после того, как будет уверенность в правильной и безотказной работе. Сейчас практически каждый день что-то подправляю, т.к. в сети слишком много сайтов и каждый со своими заморочками. Например есть форумы, которые для "залогиненных" пользователей отображают подписи и прямые ссылки, но боты (и "Привратник" в том числе) видят совершенно другую картину - только посты, без ссылок. Честно говоря был удивлен, когла Привратник записал в попингуи forum.gameplanet.by, на котором точно стоят прямые ссылки сюда. Как оказалось, и правильно сделал!
Еще одна проблема (которая уже решена и о которой напишу в ближайшее время) - реализация транзакций на "файловых БД". Тема серьезная и требует отдельного рассмотрения. Скажу только, что именно из-за этой проблемы сайты, которые хранят данные в файлах (к которым относятся все продукты Ласто), время от времени "обнуляются". Особенно часто слетает статистика, гораздо реже комментарии, но это зависит от посещаемости. В вашем форуме об этом есть даже пост. Привратник тоже имел эту проблему, но теперь она решена.
Как говорится, загорелся идеей, надо пробовать. Может позволите потестить бета-версию?
Уж очень интересен сам процесс, знаете ли
И, если в курсе, подскажите как реализовать для NanoCMS Engine и Lastoblog'a фишку отображения количества сжираемой памяти, так как это сделано на блоге у Вадима?
P.S. Время генерации страницы в NanoCMS уже встроил.
Узнать объем сожранной скриптом памяти можно с помощью PHP-функции memory_get_usage(TRUE). С точностью до байта
На счет бета-тестирования - напомните мне, пожалуйста, после выходных. Сейчас занят прикручиванием нового дизайна к блогу (и за одно хочу на новую версию пересесть), потому могу и забыть.
.ЗЫ
Ссылка "Привратник" внизу бокового меню показывает краткую статистику работы. Если интересно 
Если сам не забуду, то обязательно напомню. Надо два блога с уникальными дизайнами запускать...
За функцию спасибо, буду пробовать.
Привратника видел, оценил, вещь!
Ну там пока смотреть нечего - статистика всего за день. Да и рубить неугодных по черному списку - много ума не надо. Для более интересных результатов грохнул блэк-лист. Теперь будет увлекательнее 
Как говорится, "после выходных" уже наступило
Желаю тестировать.
Функцию memory_get_usage встроил, только она почему-то показывает значения в NanoCMS только кратные 256 килобайтам. Так и должно быть?
А дизайн хороший, мн очень понравился. Только при разрешении 1024х768 с правой стороны не видно тёмно-синего фона(который переходом). Opera 9.62.
Тормознул вчера, у меня выходные как бы сместилиь на один день. Пишу сегодня, дабы исправить ошибку...
Кстати, расскажите, как правильно смайлики автоматом вставлять в тело поста? Через str_replace?
И в комментах тоже их как сделать?
Я пользуюсь вот этой штукой: http://fit-media.com/post_1224871025.html
Она (кроме всего прочего) позволяет и смайлы прямо в посты вставлять. Без редактора смайлы вставить можно только как обычные картинки <img src="..." border="0"> . В комментариях же тэги режутся, поэтому только str_replace перед отображением может исправить ситуацию.
Кстати, спасибо за идею - о смайлах в комментариях я как-то позабыл
На счет memory_get_usage. Используйте параметр TRUE и она выдаст реальный объем в байтах.
1. Меняю свой редактор-публикатор на Ваш
Просто переустанавливал винду, а пароли к кошелькам про..терял. Сейчас восстанавливаю доступ в WM.
2. Привратника получить всё также хочу.
3. Стоит параметр TRUE, только показывает суммы кратные 256 килобайтам - поделите два раза на 1024.
4. Как сделать смайлы в комментах?
5. И перенос строки по Enter'y как вставить там же автоматом, Вадим Николаевич отказался, сказал, что он nbsp пользуется
, а то приходится с <br> писать комменты.
2. Чуть позже - надо ему интерфейс хоть какой-то приделать, а то все параметры прям внутри кода крутить приходится. Ща времени нет пока до ума довести. Да и пусть маленько потестируется. А то вдруг окажется, что он ботов с поисковиков блокирует - рухнет сайт в серпе и будете потом в меня камнями кидаться...
3. У меня в левом столбце выводится результат memory_get_usage(TRUE). Видимо причина кратности в алгоритмах системы управления памятью сервера - обычно память выделяется с запасом, на случай использования функций "расширения" выделенного блока (например, если в созданный массив требуется добавть элементы).
4. Конкретно у меня сделано так (файл comment.php, непосредственно перед шаблоном коммента):
$_smi = array (': )', ': (', '; )', ': ))', ': D', ': P', '8 -O', '; (');
$_smo = array(
'<img border="0" src="fckeditor/editor/images/smiley/ab.gif" ;>',
'<img border="0" src="fckeditor/editor/images/smiley/ac.gif" ;>',
'<img border="0" src="fckeditor/editor/images/smiley/ad.gif" ;>',
'<img border="0" src="fckeditor/editor/images/smiley/ag.gif" ;>',
'<img border="0" src="fckeditor/editor/images/smiley/ag.gif" ;>',
'<img border="0" src="fckeditor/editor/images/smiley/ae.gif" ;>',
'<img border="0" src="fckeditor/editor/images/smiley/ai.gif" ;>',
'<img border="0" src="fckeditor/editor/images/smiley/ak.gif" ;>');
$comment = str_replace($_smi, $_smo, $comment);
5. Не совсем понял, о чем идет речь?
... о теге <br>, который не вставляется в строки по умолчанию при использовании кнопки Enter два раза.
Вот сейчас я в комментарии нажал Enter два раза, чтобы между абзацами было пустое место, а на практике мы видим что абзацы пишутся слитно.
Теперь я после этого предложения поставлю два тега <br> и будет разрыв между абзацами.(поставил здесь <br>
(И здесь <br>
Это предложение уже отделено от других. Вот это надо автоматизировать...
Ну это мне и самому интересно.
Проблема в том, что блог вырезает HTML-тэги из комментов (и это правильно с точки зрения безопасности). Вот только не понятно, почему он BR только один оставляет. Уж или оставлял бы все или вообще их херил...
Проблема давно известная (многие, как и я делают пустые строки с точкой для пропусков)
.
Я пробовал дублировать BR'ы в шаблоне (или можно в CSS отспут для этого тэга прописать - результат одинаковый), но тогда тоже не красиво получается: при каждом переносе получается пустая строка, а это тоже не всегда желательно.
.
Идеальный вариант - заменить двойные BR'ы на абзац. В принципе это можно попробовать сделать плагином. Может даже сегодня и реализую. Если не забуду. Работы дофига....
Получилось? Или было недосуг... 
Зачем с попингуями вообще бороться? Ну, делают они запросы... что тут страшного? Этот вопрос можно назвать риторическим, я понимаю детали.
Ну, засядут в статистике, пусть так. А зачем простому гостю блога вообще показывать эту инфу (стату), которая имеет какое-то значение только для автора блога?
Если честно, как ни крути, я просто не вижу смысла в защите от этих пингеров.
(23 июля 2009, 01:21)
Давно думал, что такой алгоритм будет изначально. Понимаю, что нагрузка на хостера повысится, но это стоит того.
(05 июня 2009, 10:40)Получается так называемый модерируемый автоматом каталог ссылок, который неплохо покажет кто есть друг, а кто просто мимо проходил...
А версия для пользователей скоро будет?
P.S. Добавил тему со списком попингуйских сайтов в категорию Lasto Group форума
http://airily.ru/forum/index.php