如何在Perl中解析用户代理字符串?

时间:2010-10-01 12:59:22

标签: perl perl-module user-agent

我需要从文本文件中解析HTTP标头中的用户代理,以便确定浏览器,版本,操作系统以及可能的设备。这些行的例子很少:

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Update a; AOL 6.0; Windows 98)

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Crazy Browser 2.0.0 Beta 1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)

User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; de-de) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10

User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 95) Opera 6.01  [en]

由于这些字符串的多样性,我认为利用某人已经提供的经过验证且可靠的解析器会更好。我确实在PHP或java中找到了一些,但似乎没有为Perl找到一个。

有人可以告诉我任何这样的模块吗?

3 个答案:

答案 0 :(得分:15)

您可能正在寻找HTTP::BrowserDetect模块。

答案 1 :(得分:1)

每当你在Perl中需要某些东西时,试试CPAN Search。搜索user agent仅在结果的第一页显示您可能使用的几个模块。

答案 2 :(得分:1)

我检查了所有用于解析User-Agent字符串的Perl CPAN模块:

  

http://blogs.perl.org/users/neilb/2011/10/cpan-modules-for-parsing-user-agent-strings.html

有许多模块是积极维护的。目前(2012年1月)由HTML::ParseBrowser提供的常规网络浏览器的最佳报道,我正在维护。

尼尔