(PHP) делаем userbar с IP, браузером, ОС

Тема в разделе "Флудилка", создана пользователем Злая Птичка, 15 янв 2013.

  1. Сейчас я расскажу, как сделать userbar, показывающий IP, браузер, ОС просматривающего.
    Итак, начнём.

    (Проверяем, можно ли создать userbar на вашем сайте.)​

    Примечание: заменяйте вашсайт.ru на адрес вашего сайта.

    Создаём файл info.php со следующим содержанием:
    PHP:
    <?php
    phpinfo();
    ?>
    Открываем( http://вашсайт.ru/info.php ) и ищем строчки:
    Код (Text):
    gd
    GD Support enabled
    GD Version bundled (2.0.28 compatible)
    FreeType Support enabled
    FreeType Linkage with freetype
    FreeType Version 2.1.9
    T1Lib Support enabled
    GIF Read Support enabled
    GIF Create Support enabled
    JPG Support enabled
    PNG Support enabled
    WBMP Support enabled
    XBM Support enabled
    (Вместо 2.0.28 могут быть другие цифры.)
    Если вы их не нашли, то вы не сможете сделать userbar.
    Внимание! Для безопасности обязательно удалите файл info.php!

    (Создаём userbar)​

    1. Скачиваем эту картинку и сохраняем её на сайте под именем img.gif;
    2. Создаём файл userbar.php со следующим содержанием:
    PHP:
    <?php
    // узнаём браузер
    function user_browser($agent) {
        preg_match("/(MSIE|Opera|Firefox|Chrome|Version|Opera Mini|Netscape|Konqueror|SeaMonkey|Camino|Minefield|Iceweasel|K-Meleon|Maxthon)(?:\/| )([0-9.]+)/", $agent, $browser_info); // регулярное выражение, которое позволяет отпределить 90% браузеров
            list(,$browser,$version) = $browser_info; // получаем данные из массива в переменную
            if (preg_match("/Opera ([0-9.]+)/i", $agent, $opera)) return 'Opera '.$opera[1]; // определение _очень_старых_ версий Оперы (до 8.50), при желании можно убрать
            if ($browser == 'MSIE') { // если браузер определён как IE
                    preg_match("/(Maxthon|Avant Browser|MyIE2)/i", $agent, $ie); // проверяем, не разработка ли это на основе IE
                    if ($ie) return $ie[1].' based on IE '.$version; // если да, то возвращаем сообщение об этом
                    return 'IE '.$version; // иначе просто возвращаем IE и номер версии
            }
            if ($browser == 'Firefox') { // если браузер определён как Firefox
                    preg_match("/(Flock|Navigator|Epiphany)\/([0-9.]+)/", $agent, $ff); // проверяем, не разработка ли это на основе Firefox
                    if ($ff) return $ff[1].' '.$ff[2]; // если да, то выводим номер и версию
            }
            if ($browser == 'Opera' && $version == '9.80') return 'Opera '.substr($agent,-5); // если браузер определён как Opera 9.80, берём версию Оперы из конца строки
            if ($browser == 'Version') return 'Safari '.$version; // определяем Сафари
            if (!$browser && strpos($agent, 'Gecko')) return 'Browser based on Gecko'; // для неопознанных браузеров проверяем, если они на движке Gecko, и возращаем сообщение об этом
            return $browser.' '.$version; // для всех остальных возвращаем браузер и версию
    }
    // узнаём операционную систему
    function getOS($oper)
    {
    if (strpos($oper, 'Windows 98') !== false)
    $op = 'Win 98';
    elseif (strpos($oper, 'Linux') !== false)
    $op = 'Linux';
    elseif (strpos($oper, 'bsd') !== false)
    $op = 'Free BSD';
    elseif (strpos($oper, 'Windows NT 5.2') !== false)
    $op = 'Win 2003';
    elseif (strpos($oper, 'mac') !== false)
    $op = 'Mac';
    elseif (strpos($oper, 'Windows NT 5.1') !== false)
    $op = 'Win XP';
    elseif (strpos($oper, 'Windows NT 5.0') !== false)
    $op = 'Win 2000';
    elseif (strpos($oper, 'Windows NT 6.0') !== false)
    $op = 'Win Vista';
    elseif (strpos($oper, 'Windows NT 6.1') !== false)
    $op = 'Win 7';
    elseif (strpos($oper, 'Windows NT 6.2') !== false)
    $op = 'Win 8';
    elseif (strpos($oper, 'NT') !== false)
    $op = 'Windows';
    else $op = 'Unknown';
     
    return $op;
    }
    $op=getOS($_SERVER['HTTP_USER_AGENT']);
    $browser=user_browser($_SERVER['HTTP_USER_AGENT']);
    $text = $_SERVER['REMOTE_ADDR']." ".$browser."(".$op.")";
    header("content-type: image/gif");
    $image = imagecreatefromgif ("img.gif");
    $color_text = imagecolorallocate($image, 255, 255, 255);
    imagestring ($image, 3, 70, 2, $text, $color_text);
    imagegif ($image);
    ?>
    Перед <?php не должно быть пробелов!

    (Проверяем работу userbar`а)​

    Теперь откройте http://вашсайт.ru/userbar.php и проверьте работу userbar`а.

    Должно получиться так:
    [​IMG]

    (Добавление в подпись)​

    Вы сделали userbar.
    Теперь добавляйте его в подпись на форуме.
    Зайдите на страницу добавления подписи, и добавьте туда картинку: http://вашсайт.ru/userbar.php

    Ура! Вы сделали userbar, показывающий IP, браузер и ОС.
     
  2. nailxx

    nailxx Официальный Нерд Администратор

    PHP-хацкер! :)