User-Agent

Discussion in 'PHP' started by Майор, 23 Jul 2005.

  1. Майор

    Майор Active Member

    Joined:
    24 Oct 2004
    Messages:
    558
    Likes Received:
    112
    Reputations:
    146
    Подскажите где можно найти подробное описание этого поля http заголовка
     
  2. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    |Подробное описание: можно совать что угодно
     
  3. Майор

    Майор Active Member

    Joined:
    24 Oct 2004
    Messages:
    558
    Likes Received:
    112
    Reputations:
    146
    это понятно, меня интересует что такое SV1 или там ещё бывает DigExt, что это значит......
    Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
     
  4. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    Это какая-то приблуда ИЕ, как всегда лишенная смысла ;)
     
  5. Егорыч+++

    Staff Member

    Joined:
    27 May 2002
    Messages:
    1,373
    Likes Received:
    895
    Reputations:
    20
  6. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    На всякий пожарный (недавно писал):

    PHP:
    <?
    # (c) nerezus, GPL v2, icq 547097
    #      get_ua()      get_os()      

    function get_ua () {
      
    $ua=getenv("HTTP_USER_AGENT");
      
      if (
    preg_match("/Opera/"$ua)) 
          
    $ua="Opera";
      else if  (
    preg_match("/MSIE/i"$ua))
          
    $ua="MSIE";
      else if (
    preg_match("/Firefox/"$ua))
          
    $ua="Firefox";
      else if (
    preg_match("/Mozilla/"$ua))
          
    $ua="Mozilla";
      else if (
    preg_match("/Links/"$ua))
          
    $ua="Links";
      else
          
    $ua="Unknown";
      return 
    $ua;
    }

    function 
    get_os () {
      
    $os=getenv("HTTP_USER_AGENT");

      if (
    preg_match("/Windows\sNT/"$os)) 
          
    $os="WinNT"
      else if (
    preg_match("/Windows/"$os)) 
          
    $os="Win9x";       
      else if (
    preg_match("/Linux/"$os)) 
          
    $os="Linux"
      else if (
    preg_match("/FreeBSD/"$os)) 
          
    $os="FreeBSD";      
      else 
    $os="Unknown";
          return 
    $os;
    }

    ?>

     
  7. Егорыч+++

    Staff Member

    Joined:
    27 May 2002
    Messages:
    1,373
    Likes Received:
    895
    Reputations:
    20
    Нашел полный список юзер агентов http://www.pgts.com.au/pgtsj/pgtsj0208c.html

    P. S. На том сайте вообще много какой инфы про юзер агент... Все смотрим там..
     
    #7 Егорыч+++, 24 Jul 2005
    Last edited: 24 Jul 2005
  8. KEZ

    KEZ Ненасытный школьник

    Joined:
    18 May 2005
    Messages:
    1,604
    Likes Received:
    754
    Reputations:
    397
    User-agent во первых неимеет значения, во вторых его можно ВООБЩЕ не использовать.
     
  9. Flex[IP]

    Flex[IP] Banned

    Joined:
    25 Nov 2004
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    вот еще варианты парсера

    PHP:
    /*
    |========================================
    | veTTa traFFic v.1.2 private
    | (c) 2004 - 2005 Black Logic Team
    | http://www.blacklogic.net
    |========================================
    */

    error_reporting(0);

    //--------------------------------------------
    // BROWSER
    //--------------------------------------------
    if( eregi("(opera) ([0-9]{1,2}.[0-9]{1,3}){0,1}",$_SERVER['HTTP_USER_AGENT'],$sysarg) || eregi("(opera/)([0-9]{1,2}.[0-9]{1,3}){0,1}",$_SERVER['HTTP_USER_AGENT'],$sysarg)){$browser_user "Opera";}
    else if( 
    eregi("(konqueror)/([0-9]{1,2}.[0-9]{1,3})",$_SERVER['HTTP_USER_AGENT'],$sysarg) ){$browser_user "Konqueror";}
    else if( 
    eregi("(lynx)/([0-9]{1,2}.[0-9]{1,2}.[0-9]{1,2})",$_SERVER['HTTP_USER_AGENT'],$sysarg) ){$browser_user "Lynx";}
    else if( 
    eregi("(msie) ([0-9]{1,2}.[0-9]{1,3})",$_SERVER['HTTP_USER_AGENT'],$sysarg) ){$browser_user "MSIE";}
    else if( 
    eregi("(netscape6)/(6.[0-9]{1,3})",$_SERVER['HTTP_USER_AGENT'],$sysarg) ){$browser_user "Netscape";}
    else if( 
    eregi("mozilla/5",$_SERVER['HTTP_USER_AGENT']) ){$browser_user "Mozilla";}
    else if( 
    eregi("(mozilla)/([0-9]{1,2}.[0-9]{1,3})",$_SERVER['HTTP_USER_AGENT'],$sysarg) ){$browser_user "Mozilla";}
    else{
    $browser_user "no";}
    //--------------------------------------------
    // SYSTEM
    //--------------------------------------------
    if(eregi("linux",$_SERVER['HTTP_USER_AGENT'])){$os_user "Linux";}
    else if(
    eregi("unix",$_SERVER['HTTP_USER_AGENT'])) {$os_user "unix";}
    else if(
    eregi("hp-ux",$_SERVER['HTTP_USER_AGENT'])) {$os_user "hp-ux";}
    else if(
    eregi("X11",$_SERVER['HTTP_USER_AGENT']) ){$os_user "Linux";}
    else if(
    eregi("win32",$_SERVER['HTTP_USER_AGENT'])){$os_user "Windows";}
    else if((
    eregi("(win)([0-9]{2})",$_SERVER['HTTP_USER_AGENT'],$sysarg)) || (eregi("(windows) ([0-9]{2})",$_SERVER['HTTP_USER_AGENT'],$sysarg)) ){$os_user "Windows";}
    else if(
    eregi("Win 9x 4.90",$_SERVER['HTTP_USER_AGENT'])){$os_user "Me";}
    else if(
    eregi("windows 2000",$_SERVER['HTTP_USER_AGENT']) || eregi("(windows nt)( ){0,1}(5.0)",$_SERVER['HTTP_USER_AGENT']) ){$os_user "2000";}
    else if(
    eregi("(windows nt)( ){0,1}(5.1)",$_SERVER['HTTP_USER_AGENT']) ){$os_user "XP";}
    else if(
    eregi("(winnt)([0-9]{1,2}.[0-9]{1,2}){0,1}",$_SERVER['HTTP_USER_AGENT'],$sysarg) ){$os_user "NT";}
    else if(
    eregi("(windows nt)( ){0,1}([0-9]{1,2}.[0-9]{1,2}){0,1}",$_SERVER['HTTP_USER_AGENT'],$sysarg) ){$os_user "NT";}
    else if(
    eregi("mac",$_SERVER['HTTP_USER_AGENT'])){$os_user "Mac";}
    else if(
    eregi("(sunos) ([0-9]{1,2}.[0-9]{1,2}){0,1}",$_SERVER['HTTP_USER_AGENT'],$sysarg)){$os_user "SunOS";}
    else if(
    eregi("(beos) r([0-9]{1,2}.[0-9]{1,2}){0,1}",$_SERVER['HTTP_USER_AGENT'],$sysarg)){$os_user "BeOS";}
    else if(
    eregi("freebsd",$_SERVER['HTTP_USER_AGENT'])){$os_user "FreeBSD";}
    else if(
    eregi("openbsd",$_SERVER['HTTP_USER_AGENT'])){$os_user "OpenBSD";}
    else if(
    eregi("irix",$_SERVER['HTTP_USER_AGENT'])){$os_user "IRIX";}
    else if(
    eregi("os/2",$_SERVER['HTTP_USER_AGENT'])){$os_user "OS2";}
    else{
    $os_user "no";}
    ....
    или

    PHP:
    if (strstr($user_agent"Nav")) $browser "Netscape";
    elseif (
    strstr($user_agent"Lynx")) $browser "Lynx";
    elseif (
    strstr($user_agent"Opera")) $browser "Opera";
    elseif (
    strstr($user_agent"WebTV")) $browser "WebTV";
    elseif (
    strstr($user_agent"Konqueror")) $browser "Konqueror";
    elseif (
    strstr($user_agent"Bot")) $browser "Bot";
    elseif (
    strstr($user_agent"MSIE")) $browser "MSIE";
    elseif (
    strstr($user_agent"Firefox/1.0.6")) $browser "Firefox/1.0.6";
    elseif (
    strstr($user_agent"Firefox/1.0.4")) $browser "Firefox/1.0.4";
    elseif (
    strstr($user_agent"Firefox/1.0.3")) $browser "Firefox/1.0.3";
    elseif (
    strstr($user_agent"Firefox/1.0.2")) $browser "Firefox/1.0.2";
    elseif (
    strstr($user_agent"Firefox/1.0.1")) $browser "Firefox/1.0.1";
    elseif (
    strstr($user_agent"Firefox/1.0")) $browser "Firefox/1.0";
    elseif (
    strstr($user_agent"Firefox")) $browser "Firefox";
    ...

    if (
    strstr($user_agent"Windows 95")) $os "Windows 95";
    elseif (
    strstr($user_agent"Windows NT 4")) $os "Windows NT 4";
    elseif (
    strstr($user_agent"Win 9x 4.9")) $os "Windows ME";
    elseif (
    strstr($user_agent"Windows 98")) $os "Windows 98";
    elseif (
    strstr($user_agent"Windows NT 5.0")) $os "Windows 2000";
    elseif (
    strstr($user_agent"SV1")) $os "Windows XP SP2";
    elseif (
    strstr($user_agent"Windows NT 5.1")) $os "Windows XP";
    elseif (
    strstr($user_agent"Windows NT 5.2")) $os "Windows 2003";
    ...
     
  10. Zadoxlik

    Zadoxlik рояль с сыром

    Joined:
    28 Feb 2005
    Messages:
    758
    Likes Received:
    216
    Reputations:
    257
    Можно на античат поставить скрипт, который будет в файл сувать все различные юзерагенты, вот и будет полный список %)
     
  11. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
  12. Zadoxlik

    Zadoxlik рояль с сыром

    Joined:
    28 Feb 2005
    Messages:
    758
    Likes Received:
    216
    Reputations:
    257
    Не, это не такой. Лог должен скапливать уникальные user-агенты =)
     
  13. Егорыч+++

    Staff Member

    Joined:
    27 May 2002
    Messages:
    1,373
    Likes Received:
    895
    Reputations:
    20
    Да не.. не надо... Я чуть выше давал ссылку на полный список юзер агентов. Его там и скачать можно в виде базы.
     
  14. igrok87

    igrok87 New Member

    Joined:
    10 Jun 2008
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Подскажите как в этот код
    <?php
    $image=imagecreatefrompng('template.png');
    $colour = imagecolorallocate($image, 255, 255, 255);
    $font = 'arial.ttf';
    $size=10;
    $angle=0;
    $x=10;
    $y=13;
    $string="Your IP: ".$_SERVER['REMOTE_ADDR'];
    imagettftext($image, $size, $angle, $x, $y, $colour, $font, $string);
    header('Content-Type: image/png;');
    imagepng($image);
    ?>
    вставить
    if((strstr($_SERVER["HTTP_USER_AGENT"], "Win")) $os = "Windows";
    elseif (strstr($_SERVER["HTTP_USER_AGENT"], "Mac")) || (ereg("PPC", getenv("HTTP_USER_AGENT")))) $os = "Mac";
    elseif (strstr($_SERVER["HTTP_USER_AGENT"], "Linux")) $os = "Linux";
    elseif (strstr($_SERVER["HTTP_USER_AGENT"], "FreeBSD")) $os = "FreeBSD";
    elseif (strstr($_SERVER["HTTP_USER_AGENT"], "SunOS")) $os = "SunOS";
    elseif (strstr($_SERVER["HTTP_USER_AGENT"], "IRIX")) $os = "IRIX";
    elseif (strstr($_SERVER["HTTP_USER_AGENT"], "BeOS")) $os = "BeOS";
    elseif (strstr($_SERVER["HTTP_USER_AGENT"], "OS/2")) $os = "OS/2";
    elseif (strstr($_SERVER["HTTP_USER_AGENT"], "AIX")) $os = "AIX";
    else $os = "Other";
    и
    if (strstr($_SERVER["HTTP_USER_AGENT"], "Nav")) $browser = "Netscape";
    elseif (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) $browser = "MSIE";
    elseif (strstr($_SERVER["HTTP_USER_AGENT"], "Lynx")) $browser = "Lynx";
    elseif (strstr($_SERVER["HTTP_USER_AGENT"], "Opera")) $browser = "Opera";
    elseif (strstr($_SERVER["HTTP_USER_AGENT"], "WebTV")) $browser = "WebTV";
    elseif (strstr($_SERVER["HTTP_USER_AGENT"], "Konqueror")) $browser = "Konqueror";
    elseif (strstr($_SERVER["HTTP_USER_AGENT"], "Bot")) $browser = "Bot";
    else $browser = "Other";
     
  15. x-demon

    x-demon Elder - Старейшина

    Joined:
    10 Jun 2007
    Messages:
    315
    Likes Received:
    101
    Reputations:
    46
    http://www.useragentstring.com/
    Вешайтесь =) Тут ВСЕ юзерагенты. Недавно для себя искал.
     
    1 person likes this.
  16. igrok87

    igrok87 New Member

    Joined:
    10 Jun 2008
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Нет я хочу сделать что бы у меня в локалкебыла такая подпись. есть хостин все есть ...
     
  17. sairo

    sairo New Member

    Joined:
    8 Jun 2008
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    видел такие сервисы. принцип думаю очень прост.
    в подпись ставится урл на картинку, потому как скрипты врядли получится.
    картинка дергается с хостинга где вместо картинки находится скрипт, определяющий юзерагент и айпи, генерирующий с помощью gd картинку и отдающий ее.
     
  18. попугай

    попугай Elder - Старейшина

    Joined:
    15 Jan 2008
    Messages:
    1,520
    Likes Received:
    401
    Reputations:
    196
    тут тоже много интересного )
    http://www.botsvsbrowsers.com/category/8/index.html