Переверни Интернеты!

Опубликовано – Апрель 1, 2010

Может быть немного с опозданием, но напишу о том, как в 1 апреля можно пошутить над своими пользователями Интернета в офисе.

Перевернём их мир с ног на голову!

За основу взял идею и скрипт отсюда.

Прикручиваем всё что нужно (mogrify содержится в пакете imagemagick):
aptitude update && aptitude install imagemagick

Затем нужно создать каталог для картинок там, откуда их сможет выдавать доступный для локальной сети веб-сервер, например:
mkdir -p /var/www/html/a1

Создадим скрипт перезаписи ссылок и немного подправим его:
touch /usr/local/bin/flip-image.pl
vim /usr/local/bin/flip-image.pl

Скрипт почти без изменений с вышеуказанного сайта, лишь подправил пути и добавил chmod для файла картинки, потому что в Debian скрипт выполняется от имени пользователя proxy и файл обрабатывается с правами 640.
Веб-сервер работает от пользователя www-data и просто так не может получить доступ к этим файлам без изменения прав доступа.

Наверное можно было бы оптимизировать скрипт, но я не силён в Perl и регулярных выражениях, да и на пол-дня веселья ИМХО этого достаточно!


#!/usr/bin/perl
$|=1;
$count = 0;
$pid = $$;
while (<>) {
chomp $_;
if ($_ =~ /(.*\.jpg)/i) {
$url = $1;
system("/usr/bin/wget", "-q", "-O","/var/www/html/a1/$pid-$count.jpg", "$url");
system("/usr/bin/mogrify", "-flip","/var/www/html/a1/$pid-$count.jpg");
system("chmod", "644","/var/www/html/a1/$pid-$count.jpg");
print "http://internet.lan/a1/$pid-$count.jpg\n";
}

if ($_ =~ /(.*\.jpeg)/i) {
$url = $1;
#system("logger","flip-image","$url");
system("/usr/bin/wget", "-q", "-O","/var/www/html/a1/$pid-$count.jpeg", "$url");
system("/usr/bin/mogrify", "-flip","/var/www/html/a1/$pid-$count.jpeg");
system("chmod", "644","/var/www/html/a1/$pid-$count.jpeg");
print "http://internet.lan/a1/$pid-$count.jpeg\n";
}

elsif ($_ =~ /(.*\.gif)/i) {
$url = $1;
system("/usr/bin/wget", "-q", "-O","/var/www/html/a1/$pid-$count.gif", "$url");
system("/usr/bin/mogrify", "-flip","/var/www/html/a1/$pid-$count.gif");
system("chmod", "644","/var/www/html/a1/$pid-$count.gif");
print "http://internet.lan/a1/$pid-$count.gif\n";

}

elsif ($_ =~ /(.*\.png)/i) {
$url = $1;
system("/usr/bin/wget", "-q", "-O","/var/www/html/a1/$pid-$count.png", "$url");
system("/usr/bin/mogrify", "-flip","/var/www/html/a1/$pid-$count.png");
system("chmod", "644","/var/www/html/a1/$pid-$count.png");
print "http://internet.lan/a1/$pid-$count.png\n";

}

else {
print "$_\n";;
}
$count++;
}

Не забываем выставить chmod a+x для файла со скриптом!
Теперь пора настроить наш прокси-сервер на использование скрипта перезаписи ссылок.
У меня установлен Squid 2.7, в его конфиге нужно добавить следующее:
url_rewrite_program /usr/local/bin/flip-image.pl
url_rewrite_children 20

И попросить squid перечитать конфиг:
/etc/init.d/squid reload

Опцию url_rewrite_children (максимальное количество одновременно работающих обработчиков) можно изменить под свои условия, исходя из оборудования сервера и количества клиентов. У меня на роутере стоит AMD Sempron с частотой 1800 МГц, и за несколько часов LA не поднимался больше 0.9.

Вот, в принципе, и всё!
Сейчас все наблюдают нечто похожее на это:

Интернет вверх тормашками

Интернет вверх тормашками

P.S. Почитайте man mogrify! Там есть ещё очень много вариантов того, что можно сделать с картинками ;)

Один комментарий в Переверни Интернеты!

  1. [...] This post was mentioned on Twitter by Max Pilipenko, Web It! Studio. Web It! Studio said: Переверни Интернеты! http://is.gd/b9mSr [...]

Добавить комментарий