Итак сейчас я расскажу как сделать не только красивую, оригинальную, но ещё и полезную подпись. Что же подразумевается под словом "полезную", например: - ты создал хорошую тему, большинство добавляет что небудь интересное, или исправляют реальные ошибки, а некоторые флудят, пишут всякую муть, клевету, но но так сложилось что ты не модератор чтобы забанить гада или пригрозить, но не всё потеряно, кто ты хакер или ламер, если хакер, значит, должен получать то что тебе нужно, в данном случае это IP, опирационка, а так же версию браузера, для начала. Как же это сделать? Просто создаём красивую подпись, в которую будет передоваться IP всех участников. Но как же узнать, кто есть кто: - По использованному браузеру, и OS, в переменной User-Agent. - По месту проживания IP или по переменной X-Forwarded-For (страна город). - По открываемым постам, учитывая что большинство пользователей(а ламеры, почти все) не используют https, а зачастую и файрвол, то по Referer-у легко определить какие сообщения посылает или просматривает пользователь. - Ну и конечно без времени запроса тут не обойтись. Для начала, расскажу как сделать красивую и оригенальную подпись. Поехали. Нам понадобиться: - какой небудь удобный графический редактор, лучьше фотошоп. - хостинг с поддержкой PHP и GD - Фантазия. Приступим к созданию изображений. Если ты не хочешь заморачиваться над динамическим созданием изображений, то можно просто, поставить редирект, на те картинки, которые надо в определённой ситуации. Примерно так: PHP: <? header('HTTP/1.1 302 Found'); header('Location: http://img.yandex.net/i/logo-big-txt.gif'); ?> Пример: Редирект или загрузить методами PHP PHP: <? header('Content-Type: image/gif'); @readfile('http://img.yandex.net/i/logo-big-txt.gif'); ?> Пример: Загрузчик Но мы будем рассматривать динамическое создание изображения. Для начала, создадим подложку, с какой небудь текстурой и крышку, с отблеском и обводкой, а также соединим их с помощью PHP+GD. - подложка - крышка PHP: <? header('Content-Type: image/png'); $im=ImageCreateFromPng("logoback.png"); $dg=ImageCreateFromPng("logofront.png"); imagecopy($im,$dg,0,0,0,0,350,19); # imagecopy(в какую, с какой, на какое место(x,y), ширена, высота, откуда(x,y)); ImageDestroy($dg); ImagePng($im); ImageDestroy($im); ?> Дальше, сложнее. Добавляем перерисовку IP и icq, да icq, на твоей подписи будет виден статус твоей аськи. Кстати сам номер лучше писать на подложке. - цифры, рисуем свои, чтоб оригинальнее было. - два статуса icq PHP: <? Header("Content-type: image/png"); $ip=$_SERVER['REMOTE_ADDR']; $icf=fopen("http://status.icq.com/online.gif?icq=999999999&img=5","r"); # Вместо 999999999 укажите свою аську $rf=fread($icf,1000); fclose($icf); if(strlen($rf)==141){$onl=0;}else{$onl=17;} # 144 - это размер активной картинки, поправишь, если вдруг icq-шники, её заменят. header('Content-Type: image/png'); $im=ImageCreateFromPng("logoback.png"); $dg=ImageCreateFromPng("logoicq.png"); imagecopy($im,$dg,2,1,$onl,0,17,17); ImageDestroy($dg); $dg=ImageCreateFromPng("logodigi.png"); $pos=195; for($n=0;$n<strlen($ip);$n++){ $ch=substr($ip,$n,1); if(preg_match('/\d/',$ch)){$nn=$ch;$pos+=12;}else{$nn=10;$pos+=1;} imagecopy($im,$dg,$pos,2,$nn*14,0,14,15); } ImageDestroy($dg); $dg=ImageCreateFromPng("logofront.png"); imagecopy($im,$dg,0,0,0,0,350,19); ImageDestroy($dg); ImagePng($im); ImageDestroy($im); ?> Этот пример пришлось заливать на другой хостинг, на том нет доступа к внешним ресурсам, для получения статуса icq. в данном примере это моя аська. Ну вот, теперь она красивая и оригинальная, а главное ваша, а значит можно переходить ко второй стадии, логирование информации. Я предпочитаю хранить все свои логи в gzip архивах, во-первых потому что сжатие текста происходит примерно в 10 раз, а-то и больше, а ведь время и место не резиновые. Теперь мы получим необходимую информацию и запишем её в gz архив. Советую сохранять все внутрискриптоиспользуемые файлы, такие как логи в недоступном для http месте. PHP: <? Header("Content-type: image/png"); # Указание браузеру на формат данных # Получение используемых переменных $ip=$_SERVER['REMOTE_ADDR']; $rf=$_SERVER['HTTP_REFERER']; $fo=$_SERVER['HTTP_X_FORWARDED_FOR']; $ag=$_SERVER['HTTP_USER_AGENT']; $qu=$_SERVER['QUERY_STRING']; # Дописывание данных сверху(в архиве будет храниться только 65536 байт + последние полученные данные) $fn="data.gz"; $fh=@gzopen($fn,'r');$fd=@gzread($fh,0xffff);@gzclose($fh); $fh=@gzopen($fn,'w9'); # Девятый уровени сжатия. $txt="\nTime:".@gmstrftime("%d %b %Y %T", time()); if(strlen($fo)>0){$txt.="\nIP:".@substr($fo,0,256);}else{$txt.="\nIP:$ip";} if(strlen($ag)>0){$txt.="\nAgt:".@substr($ag,0,256);} # 256 хватит с головой if(strlen($qu)>0){$txt.="\nQry:".@substr($qu,0,256);} if(strlen($rf)>0){$txt.="\nRef:".@substr($rf,0,256);} @gzwrite($fh,"$txt\n$fd"); @gzclose($fh); # Получение статуса icq $icf=fopen("http://status.icq.com/online.gif?icq=999999999&img=5","r"); # Вместо 999999999 укажите свою аську $rf=fread($icf,1000); fclose($icf); if(strlen($rf)==141){$onl=0;}else{$onl=17;} # 144 - это размер активной картинки, поправишь если вдруг icq-шники, её заменят. # Вывод статуса $im=ImageCreateFromPng("logoback.png"); $dg=ImageCreateFromPng("logoicq.png"); imagecopy($im,$dg,2,1,$onl,0,17,17); ImageDestroy($dg); # Вывод IP $dg=ImageCreateFromPng("logodigi.png"); $pos=195; for($n=0;$n<strlen($ip);$n++){ $ch=substr($ip,$n,1); if(preg_match('/\d/',$ch)){$nn=$ch;$pos+=11;}else{$nn=10;$pos+=1;} imagecopy($im,$dg,$pos,2,$nn*14,0,14,15); } ImageDestroy($dg); # Закрытие крышки $dg=ImageCreateFromPng("logofront.png"); imagecopy($im,$dg,0,0,0,0,350,19); ImageDestroy($dg); # Вывод изображения ImagePng($im); ImageDestroy($im); ?> Пример: Результат Внимание, это результат, если ты перейдёшь по этой ссылке, инфу о тебе увидит каждый желающий. Лог можно посмотреть, банально скачав архив, по ftp или http Пример: Лог или написав скриптик PHP: <? $fn='data.gz'; header("Content-type: text/plain"); header("Content-Encoding: gzip"); header("Content-Ranges: bytes"); header("Content-Length: ".filesize($fn)); header("Connection: Close"); @readfile($fn); ?> Пример: Лог Внимание, каждый желающий, кто хочет увидеть инфу того, кто перешел по той ссылке, заходите сюда. А теперь я расскажу, как же всё-таки узнать, кто есть кто. Например, такой лог Code: IP 207.46.130.108 Time 26 Jun 2006 00:00:00 Agt Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; Win 9x 4.90) Ref http://forum.antichat.ru/showthread.php?p=999999#post999999 говорит, что некто, в полночь(26 Jun 2006 00:00:00 - время на сервере), используя мс осла, под 98 винду(Windows 98), с ип адреса 207.46.130.108, послал пост, или перешол специально к посту, с номером 999999(?p=999999#post999999) и если мы перейдём по этому адресу и сопоставим время, мы увидим кто это был. Думаю дальше, всё понятно, просто смотришь, как у тебя меняется заголовок, когда ты ходишь по форуму, и сопоставляешь. Кстати, страну и город легко узнать через www.geobytes.com или www.ripe.net Способ защиты: Использовать high_ananimus proxy. Убедительная просьба, если вы найдёте ещё способы защиты, не выкладывайте их здесь. Идея появилась, когда я увидел, у некоторых, одинаковые подписи, имхо подпись должна быть своя, вот я и сделал свою. Удачи... hidden специально для AntiChat + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Пожалуйста, не пишите сюда необоснованных доводов. Когда я писал эту статью, я использовал только PHP Manual, для поиска последовательности параметров функций. Я считаю, что если не я придумал создавать графической подписи, это не значит, что я не могу привести свои методы, причины и размышления, поэтому поводу, и при этом чтоб это не было бояном. Я также видел статьи, по созданию подписи, но они все не больше чем на одну страницу и они меня не заинтересовали, а также без наглядных примеров. Если думаешь, зачем же я написал последние несколько строк, загляни в мою предыдущую статью, и сразу всё поймёшь. Предыдущая статья
а смысл? не легче ли просто дать ссылку на свою картинку со своего сервера и просто посмотреть логи апача?
Где твоя подпись? Статью я начял писать позавчера. Я как-то заметил у нескольких участников одинаковые подпись и подумал, значит статья будет полезная, это случайно не твоя была? И вобще, я мог её и не увидеть, я adblock-ом блокирую, общеподписьные сервера. Вот-так...
тут ты наверно не увидишь ее. смотри второй пост здесь http://forum.antichat.ru/showthread.php?p=167913 кстати, если нужен хостинг, чтоб были все нужные для таких приколов в подписях фунции , обращайтесь ко мне
1. Реклама в моей статье не приветствуется! 2. На бесплатном http://awardspace.com/ достаточно функций, для воплощения метода, описанного в моей статье, втом числе и доступ к сайту icq, так что всё работает, как и моя подпись, кроме манипуляций с IP. Кстати, кому мозолят глаза, всякие там рекламные подписи или просто что небуди не нравиться, советую FireFox+adblock или в опере 9 есть блокировка элементов(blockable items). Обновление информации: http://awardspace.com/ достаточно функций, только для старых акаунтов, при установке на новом акаунте, происходит ошибка открытия файла, при доступе к сайту status.icq.com, для получения статуса icq.
эт не реклама. ты спрашивал где можно увидеть "подпись". там она у меня вставлена в сам пост. если так считаешь - могу удалить. а "доступ к внешним ресурсам для получения статуса аси" есть?
Статью похожей тематики. http://forum.web-hack.ru/index.php?showtopic=14833 http://forum.antichat.ru/thread13068.html баян отменяется!
А теперь скажи, кто изобрёл, создание динамической подписи, ведь сходство только вэтом, и из за этого ты сказал, что это боян. Я нашёл статью нерезуса, после того как написал эту статью, потому что хотел убедиться, что таких как у меня статей нет, а так как, она заметно отличается, а также я описал другой метод вывода информации, способ применения подписи и выводы по этому поводу, я считаю что это не боян. P.S. Насчёт этого написано под плюсами.
Мда... Всё-таки я погоречился. Только глазом (единсвенным открытым ночью, второй спит) пробежал и сразу понял про что будет статья. Перечитал. Вообщем-то речь идёт не только о логировании ip и тд. (как мне показалось с первого раза) Вообщем извини. Беру свои слова обратно =) hidden++;
2hidden в твоей подписи моему ипишнику не хватает последней цифры или у тебя ограничение на 10 цифр -)
Спасибо, для решения этой проблеммы, исправь эти 2 строчки PHP: $pos=200; for($n=0;$n<strlen($ip)-1;$n++){ на эти PHP: $pos=195; for($n=0;$n<strlen($ip);$n++){
давно думал о такой идее, ток руки недоходили. прикольно, но доработать думаю стоит: Time:10 Oct 2006 21:19:56 IP:unknown Agt:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; Win64; x64; SV1)
Хм... А есть еще какой-нить хостинг, подходящий для этой цели( поддерживается fopen('http://...') ), кроме awardspace.com ?
Просто с авардспейсом все равно не получается П.с. интересно, а как же тогда подпись у автора статьи работает? у него же она на авардспейсе лежит...