|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : vitus@ice.ru 2:5020/400 31 Jan 2002 18:47:17 To : "Andrey Titov" Subject : Re: Распознать NN и IE -------------------------------------------------------------------------------- Andrey Titov <brandname@mtu-net.ru> wrote: AT> А как на Перле грамотно распознать браузер и его версию? AT>Может у кого есть кусок кода, поделитесь пожалуйста. AT>$ENV{'HTTP_USER_AGENT'} даёт информацию типа: AT>Mozilla/4.76 [en] (Win98; U) AT>Mozilla/4.73 [en] (X11; I; Linux 2.5.2-pre10 i686; Nav) AT>Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Q312461) AT>Mozilla/3.01 (X11; I; Linux 2.2.16 i686) AT>Opera/5.02 (Windows NT 4.0; U) [en] AT>Mozilla/4.73 [en] (X11; I; SunOS 5.7 sun4u) AT>Как из этого получить браузер и его версию? =head2 guess_browser Parser user agent string as given by browser, and tries to return exact name (MSIE, Mozilla (if it is actually Netscape or Mozilla), Opera) If user agent is identified as version of MSIE, tries to recognize Windows version Syntax: ($name,$version,$windows_version) = guess_browser($cgi->user_agent) =cut sub guess_browser { local $_ = shift; return ('Opera',$1,undef) if /^Mozilla.*Opera\s+(\d+\.\d+)/; my $mswin_ver = &win_version($_); return ('MSIE',$1,$mswin_ver) if /MSIE\s*(\d+\.\d+)/; return ($1,$2,undef) if /^([^\/]+)\/(\d+(\.\d+)+)/; return ($1,0,undef) if /^(\S+)\b/; } -- Victor Wagner vitus@ice.ru Chief Technical Officer Office:7-(095)-748-53-88 Communiware.Net Home: 7-(095)-135-46-61 http://www.communiware.net http://www.ice.ru/~vitus Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5 * Origin: Talk.Mail.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/6488f7706a5b.html, оценка из 5, голосов 10
|