Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Операционка


Автор: Rusico 12.7.2005, 09:29
Всем привет.
Как определить тип и версию ОС на Perl через HTTP_USER_AGENT (я не силён в регулярных выражениях)
заранее спасибо.

Автор: korob2001 12.7.2005, 09:33
Тебе чью ОС нужно определить? Если свою то попробуй так:
Код

#!/usr/bin/perl -w
use strict;
print $^O;

Если юзера, тогда приведи пример того, что тебе возвращает USER_AGENT

Автор: Rusico 12.7.2005, 10:22
В том то и дело, что HTTP_USER_AGENT может возвращать различные по строению строки, но все они имеют запись об ОС

Автор: sharq 13.7.2005, 01:30
Rusico вот накидал пару строк
Код
use strict;

print "Content-type: text/html\n\n";

my  $user_agent = $ENV{'HTTP_USER_AGENT'} || 'none';
print $user_agent, "<br>\n";

print "Parsing: <br>\n";

if ($user_agent =~ /windows/i) {
    print "is Windows <br>\n";

} elsif ($user_agent =~ /linux/i) {
    print "is Linux <br>\n";

} elsif ($user_agent =~ /bsd/i) {
    print "is BSD <br>\n";

} else {
    print "is Unknown <br>\n";

    #save in log file for our script will be nice!
}



Цитата(Rusico @ 12.7.2005, 10:22)
В том то и дело, что HTTP_USER_AGENT может возвращать различные по строению строки, но все они имеют запись об ОС

Не-е, структура есть, воть она: движок_браузера (тип_ос) тип_браузера_или_коменты.
Смотри http://www.zytrax.com/tech/web/browser_ids.htm.

Поэтому можно анализировать строку стоящую в круглых скобках!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)