Парсинг заголовка HTTP_USER_AGENT


Определить ОС и версию по заголовкам user-agent (HTTP_USER_AGENT)


function getOS($u_agent)
    {
        $system['Windows 3.1'] = "Windows 3.1";
        $system['Win16'] = "Windows 3.1";
        $system['16bit'] = "Windows 3.1";
        $system['Win32'] = "Windows 95";
        $system['32bit'] = "Windows 95";
        $system['Win 32'] = "Windows 95";
        $system['Win95'] = "Windows 95";
        $system['Windows 95/NT'] = "Windows 95";
        $system['Win98'] = "Windows 98";
        $system['Windows 95'] = "Windows 95";
        $system['Windows 98'] = "Windows 98";
        $system['Windows NT 5.0'] = "Windows 2000";
        $system['Windows NT 5.1'] = "Windows XP";
        $system['Windows NT 6.1'] = "Windows 7";
        $system['Windows NT'] = "Windows NT";
        $system['WinNT'] = "Windows NT";
        $system['Windows ME'] = "Windows ME";
        $system['Windows CE'] = "Windows CE";
        $system['Windows'] = "Windows 95";
        $system['Mac_68000'] = "Macintosh";
        $system['Mac_PowerPC'] = "Macintosh";
        $system['Mac_68K'] = "Macintosh";
        $system['Mac_PPC'] = "Macintosh";
        $system['Macintosh'] = "Macintosh";
        $system['IRIX'] = "Unix";
        $system['SunOS'] = "Unix";
        $system['AIX'] = "Unix";
        $system['Linux'] = "Unix";
        $system['HP-UX'] = "Unix";
        $system['SCO_SV'] = "Unix";
        $system['FreeBSD'] = "Unix";
        $system['BSD/OS'] = "Unix";
        $system['OS/2'] = "OS/2";
        $system['WebTV/1.0'] = "WebTV/1.0";
        $system['WebTV/1.2'] = "WebTV/1.2";


        preg_match("/\(([^;]+);/ui",$u_agent,$out);
        if(!$out)
            return 'UNKNOWN';
        $key = $out[1];
        if(getElement($system, $key))
            return $system[$key];


         return 'UNKNOWN';
    }

Комментарии

Популярные сообщения