Авторские статьи Полезная и оригинальная подпись

Discussion in 'Статьи' started by hidden, 27 Jun 2006.

  1. hidden

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    Итак сейчас я расскажу как сделать не только красивую, оригинальную, но ещё и полезную подпись.

    Что же подразумевается под словом "полезную", например:
    - ты создал хорошую тему, большинство добавляет что небудь интересное, или исправляют реальные ошибки, а некоторые флудят, пишут всякую муть, клевету, но но так сложилось что ты не модератор чтобы забанить гада или пригрозить, но не всё потеряно, кто ты хакер или ламер, если хакер, значит, должен получать то что тебе нужно, в данном случае это 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.

    [​IMG] - подложка
    [​IMG] - крышка

    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);

    ?>
    [​IMG]

    Дальше, сложнее. Добавляем перерисовку IP и icq, да icq, на твоей подписи будет виден статус твоей аськи. Кстати сам номер лучше писать на подложке.

    [​IMG] - цифры, рисуем свои, чтоб оригинальнее было.
    [​IMG] - два статуса 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.

    [​IMG] в данном примере это моя аська.

    Ну вот, теперь она красивая и оригинальная, а главное ваша, а значит можно переходить ко второй стадии, логирование информации.
    Я предпочитаю хранить все свои логи в 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, для поиска последовательности параметров функций. Я считаю, что если не я придумал создавать графической подписи, это не значит, что я не могу привести свои методы, причины и размышления, поэтому поводу, и при этом чтоб это не было бояном.
    Я также видел статьи, по созданию подписи, но они все не больше чем на одну страницу и они меня не заинтересовали, а также без наглядных примеров.
    Если думаешь, зачем же я написал последние несколько строк, загляни в мою предыдущую статью, и сразу всё поймёшь. Предыдущая статья
     
    #1 hidden, 27 Jun 2006
    Last edited: 10 Nov 2006
    21 people like this.
  2. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    а смысл?

    не легче ли просто дать ссылку на свою картинку со своего сервера и просто посмотреть логи апача?
     
    1 person likes this.
  3. hidden

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    Двойная польза!
     
  4. Dw@d

    Dw@d Member

    Joined:
    22 Jan 2006
    Messages:
    3
    Likes Received:
    7
    Reputations:
    4
    hidden, такое ощущение, что ты написал сегодня эту статью после того как увидел мою подпись.
    ну-ну.
     
    #4 Dw@d, 27 Jun 2006
    Last edited: 27 Jun 2006
    2 people like this.
  5. hidden

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    Где твоя подпись?
    Статью я начял писать позавчера.
    Я как-то заметил у нескольких участников одинаковые подпись и подумал, значит статья будет полезная, это случайно не твоя была?
    И вобще, я мог её и не увидеть, я adblock-ом блокирую, общеподписьные сервера.
    Вот-так...
     
  6. Dw@d

    Dw@d Member

    Joined:
    22 Jan 2006
    Messages:
    3
    Likes Received:
    7
    Reputations:
    4
    тут ты наверно не увидишь ее. смотри второй пост здесь http://forum.antichat.ru/showthread.php?p=167913
    кстати, если нужен хостинг, чтоб были все нужные для таких приколов в подписях фунции , обращайтесь ко мне ;)
     
    1 person likes this.
  7. hidden

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    1. Реклама в моей статье не приветствуется!
    2. На бесплатном http://awardspace.com/ достаточно функций, для воплощения метода, описанного в моей статье, втом числе и доступ к сайту icq, так что всё работает, как и моя подпись, кроме манипуляций с IP.

    Кстати, кому мозолят глаза, всякие там рекламные подписи или просто что небуди не нравиться, советую FireFox+adblock или в опере 9 есть блокировка элементов(blockable items).

    Обновление информации:
    http://awardspace.com/ достаточно функций, только для старых акаунтов, при установке на новом акаунте, происходит ошибка открытия файла, при доступе к сайту status.icq.com, для получения статуса icq.
     
    #7 hidden, 27 Jun 2006
    Last edited: 29 Jun 2006
    2 people like this.
  8. Dw@d

    Dw@d Member

    Joined:
    22 Jan 2006
    Messages:
    3
    Likes Received:
    7
    Reputations:
    4
    эт не реклама. ты спрашивал где можно увидеть "подпись". там она у меня вставлена в сам пост. если так считаешь - могу удалить.
    а "доступ к внешним ресурсам для получения статуса аси" есть?
     
  9. fucker"ok

    fucker"ok Elder - Старейшина

    Joined:
    21 Nov 2004
    Messages:
    580
    Likes Received:
    279
    Reputations:
    91
    Статью похожей тематики.
    http://forum.web-hack.ru/index.php?showtopic=14833
    http://forum.antichat.ru/thread13068.html

    баян отменяется!
     
    #9 fucker"ok, 28 Jun 2006
    Last edited: 28 Jun 2006
  10. hidden

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    А теперь скажи, кто изобрёл, создание динамической подписи, ведь сходство только вэтом, и из за этого ты сказал, что это боян.

    Я нашёл статью нерезуса, после того как написал эту статью, потому что хотел убедиться, что таких как у меня статей нет, а так как, она заметно отличается, а также я описал другой метод вывода информации, способ применения подписи и выводы по этому поводу, я считаю что это не боян.

    P.S. Насчёт этого написано под плюсами.
     
    2 people like this.
  11. fucker"ok

    fucker"ok Elder - Старейшина

    Joined:
    21 Nov 2004
    Messages:
    580
    Likes Received:
    279
    Reputations:
    91
    Мда... Всё-таки я погоречился. Только глазом (единсвенным открытым ночью, второй спит) пробежал и сразу понял про что будет статья.
    Перечитал. Вообщем-то речь идёт не только о логировании ip и тд. (как мне показалось с первого раза)

    Вообщем извини. Беру свои слова обратно =)
    hidden++;
     
  12. bandera

    bandera Banned

    Joined:
    2 Jun 2006
    Messages:
    58
    Likes Received:
    37
    Reputations:
    11
    2hidden в твоей подписи моему ипишнику не хватает последней цифры или у тебя ограничение на 10 цифр -)
     
    1 person likes this.
  13. hidden

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    Спасибо, для решения этой проблеммы, исправь эти 2 строчки
    PHP:
    $pos=200;
    for(
    $n=0;$n<strlen($ip)-1;$n++){
    на эти
    PHP:
    $pos=195;
    for(
    $n=0;$n<strlen($ip);$n++){
     
    3 people like this.
  14. bandera

    bandera Banned

    Joined:
    2 Jun 2006
    Messages:
    58
    Likes Received:
    37
    Reputations:
    11
    Теперь всё нормально.
     
    1 person likes this.
  15. TANZWUT

    TANZWUT Крёстный отец :)

    Joined:
    22 Jun 2005
    Messages:
    1,474
    Likes Received:
    716
    Reputations:
    744
    давно думал о такой идее, ток руки недоходили.
    прикольно, но доработать думаю стоит:
    Time:10 Oct 2006 21:19:56
    IP:unknown
    Agt:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; Win64; x64; SV1)
    :)
     
    _________________________
  16. Diablo

    Diablo Elder - Старейшина

    Joined:
    7 Nov 2005
    Messages:
    132
    Likes Received:
    34
    Reputations:
    12
    :D Может кто-нибудь не видел :)
     
  17. Nek1t

    Nek1t Elder - Старейшина

    Joined:
    7 Mar 2008
    Messages:
    181
    Likes Received:
    16
    Reputations:
    1
    Хм... А есть еще какой-нить хостинг, подходящий для этой цели( поддерживается fopen('http://...') ), кроме awardspace.com ?
     
    1 person likes this.
  18. Mo4x

    Mo4x VX-эпоха перемен

    Joined:
    18 Feb 2007
    Messages:
    369
    Likes Received:
    194
    Reputations:
    -21
    Nek1t
    Конечно есть тока поискать надо только воть тут на форуме подписи нету :)
     
    1 person likes this.
  19. Nek1t

    Nek1t Elder - Старейшина

    Joined:
    7 Mar 2008
    Messages:
    181
    Likes Received:
    16
    Reputations:
    1
    Просто с авардспейсом все равно не получается :(
    П.с. интересно, а как же тогда подпись у автора статьи работает? у него же она на авардспейсе лежит... :eek: :confused:
     
    1 person likes this.
  20. Mo4x

    Mo4x VX-эпоха перемен

    Joined:
    18 Feb 2007
    Messages:
    369
    Likes Received:
    194
    Reputations:
    -21
    Nek1t
    У простых смертных нету привилегий на подпись .