$this->version = $regs[1];
$this->bot = false;
}
+ elseif (preg_match('|BonEcho/([0-9a-zA-Z\.+]+)|i', $this->uastring, $regs)) {
+ $this->brand = 'Bon Echo';
+ $this->version = $regs[1];
+ $this->bot = false;
+ }
+ elseif (preg_match('|GranParadiso/([0-9a-zA-Z\.+]+)|i', $this->uastring, $regs)) {
+ $this->brand = 'Gran Paradiso';
+ $this->version = $regs[1];
+ $this->bot = false;
+ }
+ elseif (preg_match('|Shiretoko/([0-9a-zA-Z\.+]+)|i', $this->uastring, $regs)) {
+ $this->brand = 'Shiretoko';
+ $this->version = $regs[1];
+ $this->bot = false;
+ }
+ elseif (preg_match('|Namoroka/([0-9a-zA-Z\.+]+)|i', $this->uastring, $regs)) {
+ $this->brand = 'Namoroka';
+ $this->version = $regs[1];
+ $this->bot = false;
+ }
elseif (preg_match('|Minefield/([0-9a-zA-Z\.+]+)|i', $this->uastring, $regs)) {
$this->brand = 'Minefield';
$this->version = $regs[1];
$this->bot = false;
}
+ elseif (preg_match('|PmWFx/([0-9a-zA-Z\.+]+)|i', $this->uastring, $regs)) {
+ $this->brand = 'PmW-Firefox';
+ $this->version = $regs[1];
+ $this->bot = false;
+ }
+ elseif (preg_match('|BeZillaBrowser/([0-9a-zA-Z\.+]+)|i', $this->uastring, $regs)) {
+ $this->brand = 'BeZillaBrowser';
+ $this->version = $regs[1];
+ $this->bot = false;
+ }
+ elseif (preg_match('|Songbird/([0-9a-zA-Z\.+]+)|i', $this->uastring, $regs)) {
+ $this->brand = 'Songbird';
+ $this->version = $regs[1];
+ $this->bot = false;
+ }
+ elseif (preg_match('|Shredder/([0-9a-zA-Z\.+]+)|i', $this->uastring, $regs)) {
+ $this->brand = 'Shredder';
+ $this->version = $regs[1];
+ $this->bot = false;
+ }
+ elseif (preg_match('|prism/([0-9a-zA-Z\.+]+)|i', $this->uastring, $regs)) {
+ $this->brand = 'Prism';
+ $this->version = $regs[1];
+ $this->bot = false;
+ }
elseif (preg_match('|Minimo/([0-9a-zA-Z\.+]+)|i', $this->uastring, $regs)) {
$this->brand = 'Minimo';
$this->version = $regs[1];
$this->bot = false;
}
+ elseif (preg_match('|Fennec/([0-9a-zA-Z\.+]+)|i', $this->uastring, $regs)) {
+ $this->brand = 'Fennec';
+ $this->version = $regs[1];
+ $this->bot = false;
+ }
elseif (preg_match('|Galeon/([0-9a-zA-Z\.+]+)|', $this->uastring, $regs)) {
$this->brand = 'Galeon';
$this->version = $regs[1];
$this->version = $regs[1];
$this->bot = false;
}
+ elseif (preg_match('|Spinn3r ([0-9a-zA-Z\.+]+)|', $this->uastring, $regs)) { /* looks like Gecko! */
+ $this->brand = 'Spinn3r';
+ $this->version = $regs[1];
+ $this->bot = true;
+ }
+ elseif (preg_match('|Butterfly/([0-9a-zA-Z\.+]+)|', $this->uastring, $regs)) { /* looks like Gecko! */
+ $this->brand = 'Butterfly';
+ $this->version = $regs[1];
+ $this->bot = true;
+ }
+ elseif (preg_match('|Googlebot/([0-9a-zA-Z\.+]+)|', $this->uastring, $regs)) { /* looks like Gecko! */
+ $this->brand = 'Googlebot';
+ $this->version = $regs[1];
+ $this->bot = true;
+ }
elseif (preg_match('|Firefox/([0-9a-zA-Z\.+]+)|', $this->uastring, $regs)) {
$this->brand = 'Firefox';
$this->version = $regs[1];
$this->bot = false;
}
+ elseif (preg_match('|Thunderbird/([0-9a-zA-Z\.+]+)|i', $this->uastring, $regs)) {
+ $this->brand = 'Thunderbird';
+ $this->version = $regs[1];
+ $this->bot = false;
+ }
elseif (preg_match('|rv:([0-9a-zA-Z\.+]+)|', $this->uastring, $regs) &&
strstr($this->uastring, "Mozilla/") && strstr($this->uastring, "Gecko/")) {
$this->brand = 'Mozilla';
$this->version = 'M'.$regs[1];
$this->bot = false;
}
+ elseif (preg_match('|Baiduspider|i', $this->uastring)) {
+ $this->brand = 'BaiDuSpider';
+ $this->version = null;
+ $this->bot = true;
+ }
+ elseif (preg_match('|YodaoBot-Mobile/([0-9a-zA-Z\.+]+)|', $this->uastring, $regs)) { /* looks like Gecko! */
+ $this->brand = 'YodaoBot-Mobile';
+ $this->version = $regs[1];
+ $this->bot = true;
+ }
+ elseif (preg_match('|Googlebot-Mobile/([0-9a-zA-Z\.+]+)|', $this->uastring, $regs)) { /* looks like Gecko! */
+ $this->brand = 'Googlebot-Mobile';
+ $this->version = $regs[1];
+ $this->bot = true;
+ }
+ elseif (preg_match('|FASTMobileCrawl/([0-9a-zA-Z\.+]+)|', $this->uastring, $regs)) { /* looks like Gecko! */
+ $this->brand = 'FASTMobileCrawl';
+ $this->version = $regs[1];
+ $this->bot = true;
+ }
elseif (preg_match('|MSFrontPage/([0-9a-zA-Z\.+]+)|', $this->uastring, $regs)) {
$this->brand = 'Microsoft FrontPage';
$this->version = $regs[1];
$this->version = $regs[1];
$this->bot = false;
}
+ elseif (preg_match('|Browser/Obigo-([0-9A-Z]+/[0-9a-zA-Z\.+]+)|', $this->uastring, $regs)) {
+ $this->brand = 'Obigo';
+ $this->version = $regs[1];
+ $this->bot = false;
+ }
elseif (preg_match('|Nokia([0-9a-zA-Z]+/[0-9a-zA-Z\.+]+)|', $this->uastring, $regs)) {
$this->brand = 'Nokia';
$this->version = $regs[1];
$this->version = $regs[1];
$this->bot = false;
}
+ elseif (preg_match('|NewsFox/([0-9a-zA-Z\.+]+)|', $this->uastring, $regs)) {
+ $this->brand = 'NewsFox';
+ $this->version = $regs[1];
+ $this->bot = false;
+ }
+ elseif (preg_match('|rdfbot/([0-9a-zA-Z\.+]+)|', $this->uastring, $regs)) {
+ $this->brand = 'rdfbot';
+ $this->version = $regs[1];
+ $this->bot = false;
+ }
elseif (preg_match('|IBM-WebExplorer-DLL/v([0-9a-zA-Z\.+]+)|', $this->uastring, $regs)) {
$this->brand = 'WebExplorer';
$this->version = $regs[1];
$this->version = $regs[1];
$this->bot = true;
}
- elseif (preg_match('|([0-9a-zA-Z\.+]+bot)/([0-9a-zA-Z\.+]+)|i', $this->uastring, $regs)) {
+ elseif (preg_match('|heritrix([0-9a-zA-Z\.+-]+)|', $this->uastring, $regs)) {
+ $this->brand = 'Heritrix';
+ $this->version = str_replace('-', '.', $regs[1]);
+ $this->bot = true;
+ }
+ elseif (preg_match('|SBSearch/([0-9a-zA-Z\.+]+)|', $this->uastring, $regs)) {
+ $this->brand = 'SBSearch';
+ $this->version = $regs[1];
+ $this->bot = true;
+ }
+ elseif (preg_match('|Powermarks/([0-9a-zA-Z\.+]+)|', $this->uastring, $regs)) {
+ $this->brand = 'Powermarks';
+ $this->version = $regs[1];
+ $this->bot = true;
+ }
+ elseif (preg_match('|TopBlogsInfo/([0-9a-zA-Z\.+]+)|', $this->uastring, $regs)) {
+ $this->brand = 'TopBlogsInfo';
+ $this->version = $regs[1];
+ $this->bot = true;
+ }
+ elseif (preg_match('|picmole/([0-9a-zA-Z\.+]+)|', $this->uastring, $regs)) {
+ $this->brand = 'picmole';
+ $this->version = $regs[1];
+ $this->bot = true;
+ }
+ elseif (preg_match('|([0-9a-zA-Z\._+-]+bot)/([0-9a-zA-Z\.+]+)|i', $this->uastring, $regs)) {
$this->brand = $regs[1];
$this->version = $regs[2];
$this->bot = true;
$this->version = $regs[1];
$this->bot = true;
}
- elseif (preg_match('|Powermarks/([0-9a-zA-Z\.+]+)|', $this->uastring, $regs)) {
- $this->brand = 'Powermarks';
- $this->version = $regs[1];
- $this->bot = true;
- }
elseif (preg_match('|Gulper Web Bot ([0-9a-zA-Z\.+]+)|', $this->uastring, $regs)) {
$this->brand = 'Gulper Web Bot';
$this->version = $regs[1];
$this->version = $regs[1];
$this->bot = true;
}
+ elseif (preg_match('|Advista Crawler ([0-9a-zA-Z\.+]+)|', $this->uastring, $regs)) {
+ $this->brand = 'HTTrack';
+ $this->version = $regs[1];
+ $this->bot = true;
+ }
+ elseif (preg_match('|Seznam screenshot-generator ([0-9a-zA-Z\.+]+)|', $this->uastring, $regs)) {
+ $this->brand = 'Seznam screenshot-generator';
+ $this->version = $regs[1];
+ $this->bot = true;
+ }
+ elseif (preg_match('|Yahoo! SearchMonkey ([0-9a-zA-Z\.+]+)|', $this->uastring, $regs)) {
+ $this->brand = 'Yahoo! SearchMonkey';
+ $this->version = $regs[1];
+ $this->bot = true;
+ }
+ elseif (preg_match('|Yahoo Pipes ([0-9a-zA-Z\.+]+)|', $this->uastring, $regs)) {
+ $this->brand = 'Yahoo! Pipes';
+ $this->version = $regs[1];
+ $this->bot = true;
+ }
+ elseif (preg_match('|Firebat ([0-9a-zA-Z\.+]+)|', $this->uastring, $regs)) {
+ $this->brand = 'Firebat';
+ $this->version = $regs[1];
+ $this->bot = true;
+ }
elseif (preg_match('|Twiceler-([0-9a-zA-Z\.+]+)|', $this->uastring, $regs)) {
$this->brand = 'Twiceler';
$this->version = $regs[1];
$this->bot = true;
}
+ elseif (preg_match('|Nu_?tch-([0-9a-zA-Z\.+]+)|', $this->uastring, $regs)) {
+ $this->brand = 'Nutch';
+ $this->version = $regs[1];
+ $this->bot = true;
+ }
elseif (preg_match('|Microsoft URL Control - ([0-9a-zA-Z\.+]+)|', $this->uastring, $regs)) {
$this->brand = 'Microsoft URL Control';
$this->version = $regs[1];
$this->version = null;
$this->bot = true;
}
+ elseif (preg_match('|ICCrawler|i', $this->uastring, $regs)) {
+ $this->brand = 'ICCrawler';
+ $this->version = null;
+ $this->bot = true;
+ }
+ elseif (preg_match('|KaloogaBot|', $this->uastring, $regs)) {
+ $this->brand = 'KaloogaBot';
+ $this->version = null;
+ $this->bot = true;
+ }
+ elseif (preg_match('|ScoutJet|', $this->uastring, $regs)) {
+ $this->brand = 'ScoutJet';
+ $this->version = null;
+ $this->bot = true;
+ }
elseif (preg_match('|http://www.livedir.net|', $this->uastring, $regs)) {
$this->brand = 'livedir.net';
$this->version = null;
$this->version = null;
$this->bot = true;
}
+ elseif (preg_match('|newstin.com|', $this->uastring, $regs)) {
+ $this->brand = 'newstin.com';
+ $this->version = null;
+ $this->bot = true;
+ }
elseif (preg_match('|http://www.almaden.ibm.com/cs/crawler|', $this->uastring)) {
$this->brand = 'almaden crawler';
$this->version = null;
$this->version = null;
$this->bot = true;
}
- elseif (preg_match('|Baiduspider|i', $this->uastring)) {
- $this->brand = 'BaiDuSpider';
- $this->version = null;
- $this->bot = true;
- }
elseif (preg_match('|Indy Library|', $this->uastring)) {
$this->brand = 'Indy Library';
$this->version = null;
'NetResearchServer','LinkWalker','Zeus','W3C_Validator','ZyBorg','Ask Jeeves','ia_archiver',
'PingALink Monitoring Services','IlTrovatore-Setaccio','Nutch','Mercator','search.ch',
'appie','larbin','NutchCVS','Webchat','Mediapartners-Google','sitecheck.internetseer.com',
- 'FavOrg','findlinks','DataCha0s','ichiro','Francis','','','','','');
+ 'FavOrg','findlinks','DataCha0s','ichiro','Francis','CoralWebPrx','DoCoMo','Ocelli','Sogou Video',
+ 'Yandex','Yeti','Austronaut-URL-Checker');
if (in_array($this->brand, $botArray)) {
$this->bot = true;
if (!isset($this->uadata['engine'])) {
$this->uadata['engine'] = 'unknown';
$this->uadata['geckodate'] = null;
- if (preg_match('|Gecko/([0-9]+)|', $this->uastring, $regs) && (strpos($this->brand, 'Opera') === false)) {
- $this->uadata['engine'] = 'gecko';
- $this->uadata['geckodate'] = $regs[1];
- }
- elseif ((strpos($this->brand, 'Internet Explorer') !== false) || (strpos($this->brand, 'FrontPage') !== false)) {
- if ((strpos(strtolower($this->uastring), 'mac') !== false) && (intval($this->getVersion()) >= 5)) {
- $this->uadata['engine'] = 'tasman';
+ if (!$this->bot) {
+ if (preg_match('|Gecko/([0-9]+)|', $this->uastring, $regs) && (strpos($this->brand, 'Opera') === false)) {
+ $this->uadata['engine'] = 'gecko';
+ $this->uadata['geckodate'] = $regs[1];
}
- else {
- $this->uadata['engine'] = 'trident';
+ elseif ((strpos($this->brand, 'Internet Explorer') !== false) || (strpos($this->brand, 'FrontPage') !== false)) {
+ if ((strpos(strtolower($this->uastring), 'mac') !== false) && (intval($this->getVersion()) >= 5)) {
+ $this->uadata['engine'] = 'tasman';
+ }
+ else {
+ $this->uadata['engine'] = 'trident';
+ }
}
- }
- elseif ((strpos($this->brand, 'Konqueror') !== false) || (strpos($this->brand, 'Safari') !== false) ||
- (strpos($this->brand, 'Shiira') !== false) || (strpos($this->brand, 'Chrome') !== false) ||
- (strpos($this->brand, 'AppleWebKit') !== false) || (strpos($this->brand, 'OmniWeb') !== false)) {
- $this->uadata['engine'] = 'khtml';
- }
- elseif (strpos($this->brand, 'Netscape') !== false) {
- // non-Gecko Netscape browsers
- if (intval($this->version) <= 4) {
- $this->uadata['engine'] = 'nscp';
+ elseif ((strpos($this->brand, 'Konqueror') !== false) || (strpos($this->uastring, 'WebKit/') !== false) ||
+ (strpos($this->brand, 'OmniWeb') !== false)) {
+ $this->uadata['engine'] = 'khtml';
+ }
+ elseif (strpos($this->brand, 'Netscape') !== false) {
+ // non-Gecko Netscape browsers
+ if (intval($this->version) <= 4) {
+ $this->uadata['engine'] = 'nscp';
+ }
+ elseif (strpos($this->uastring, 'MSIE') !== false) {
+ $this->uadata['engine'] = 'trident';
+ }
}
- elseif (strpos($this->uastring, 'MSIE') !== false) {
+ elseif (strpos($this->brand, 'Opera') !== false) {
+ $this->uadata['engine'] = 'presto';
+ }
+ elseif (strpos($this->brand, 'Dillo') !== false) {
+ $this->uadata['engine'] = 'gzilla';
+ }
+ elseif ((strpos($this->brand, 'ELinks') !== false) || (strpos($this->brand, 'Links') !== false)) {
+ $this->uadata['engine'] = 'links';
+ }
+ elseif ((strpos($this->brand, 'Lynx') !== false)) {
+ $this->uadata['engine'] = 'lynx';
+ }
+ elseif ((strpos($this->brand, 'ICEbrowser') !== false) || (strpos($this->brand, 'ICE Browser') !== false)) {
+ $this->uadata['engine'] = 'icestorm';
+ }
+ elseif ((strpos($this->brand, 'PlayStation') !== false) || (strpos($this->brand, 'NetFront') !== false)) {
+ $this->uadata['engine'] = 'netfront';
+ }
+ elseif ((strpos($this->brand, 'Avant') !== false) || (strpos($this->brand, 'Crazy Browser') !== false) ||
+ (strpos($this->brand, 'AOL') !== false) || (strpos($this->brand, 'MSN') !== false) ||
+ (strpos($this->brand, 'MyIE2') !== false) || (strpos($this->brand, 'Maxthon') !== false)) {
$this->uadata['engine'] = 'trident';
}
- }
- elseif (strpos($this->brand, 'Opera') !== false) {
- $this->uadata['engine'] = 'presto';
- }
- elseif (strpos($this->brand, 'Dillo') !== false) {
- $this->uadata['engine'] = 'gzilla';
- }
- elseif ((strpos($this->brand, 'ELinks') !== false) || (strpos($this->brand, 'Links') !== false)) {
- $this->uadata['engine'] = 'links';
- }
- elseif ((strpos($this->brand, 'ICEbrowser') !== false) || (strpos($this->brand, 'ICE Browser') !== false)) {
- $this->uadata['engine'] = 'icestorm';
- }
- elseif ((strpos($this->brand, 'PlayStation') !== false) || (strpos($this->brand, 'NetFront') !== false)) {
- $this->uadata['engine'] = 'netfront';
- }
- elseif ((strpos($this->brand, 'Avant') !== false) || (strpos($this->brand, 'Crazy Browser') !== false) ||
- (strpos($this->brand, 'AOL') !== false) || (strpos($this->brand, 'MSN') !== false) ||
- (strpos($this->brand, 'MyIE2') !== false) || (strpos($this->brand, 'Maxthon') !== false)) {
- $this->uadata['engine'] = 'trident';
- }
- elseif (strpos($this->brand, 'Galeon') !== false) {
- $this->uadata['engine'] = 'gecko';
- }
- elseif (strpos($this->brand, 'WebPro') !== false) {
- $this->uadata['engine'] = 'nscp';
+ elseif (strpos($this->brand, 'Galeon') !== false) {
+ $this->uadata['engine'] = 'gecko';
+ }
+ elseif (strpos($this->brand, 'WebPro') !== false) {
+ $this->uadata['engine'] = 'nscp';
+ }
}
}
return $this->uadata['engine'];
public function getOS() {
if (!isset($this->uadata['os'])) {
$this->uadata['os'] = null;
- if ($this->hasEngine('gecko')) {
- if (preg_match('|Mozilla/5.0 \(([^;]+); [^;]+; ([^;]+); ([^;]+); rv:([^\);]+)(; [^\)]+)?\)|', $this->uastring, $regs)) {
- $this->uadata['os'] = $regs[2];
- $this->uadata['lang'] = (strpos($regs[3],'chrome://')===false)?$regs[3]:null;
- $this->uadata['eng_version'] = $regs[4];
+ if (!$this->bot) {
+ if ($this->hasEngine('gecko')) {
+ if (preg_match('|Mozilla/5.0 \(([^;]+); [^;]+; ([^;]+); ([^;]+); rv:([^\);]+)(; [^\)]+)?\)|', $this->uastring, $regs)) {
+ $this->uadata['os'] = $regs[2];
+ $this->uadata['lang'] = (strpos($regs[3],'chrome://')===false)?$regs[3]:null;
+ $this->uadata['eng_version'] = $regs[4];
+ }
+ elseif (preg_match('|Mozilla/5.0 \(([^;]+); [^;]+; ([^;]+); rv:([^\);]+)(; [^\)]+)?\)|', $this->uastring, $regs)) {
+ $this->uadata['os'] = $regs[2];
+ $this->uadata['lang'] = null;
+ $this->uadata['eng_version'] = $regs[3];
+ }
+ elseif (preg_match('|Mozilla/5.0 \(([^;]+); [^;]+; ([^;]+); ([^;]+); m([^\);]+)\)|', $this->uastring, $regs)) {
+ $this->uadata['os'] = $regs[2];
+ $this->uadata['lang'] = $regs[3];
+ $this->uadata['eng_version'] = 'M'.$regs[4];
+ }
+ elseif (preg_match('|Mozilla/5.0 \(([^;]+); [^;]+; ([^;]+); m([^\);]+)\)|', $this->uastring, $regs)) {
+ $this->uadata['os'] = $regs[1];
+ $this->uadata['lang'] = $regs[2];
+ $this->uadata['eng_version'] = 'M'.$regs[3];
+ }
+ elseif (preg_match('|Mozilla/5.0 \(([^;]+); [^;]+; ([^;]+); ([^\);]+)\)|', $this->uastring, $regs)) {
+ $this->uadata['os'] = $regs[2];
+ $this->uadata['lang'] = $regs[3];
+ $this->uadata['eng_version'] = null;
+ }
+ elseif (preg_match('|Mozilla/5.0 \(([^;]+); ([^;]+); rv:([^\);]+)\)|', $this->uastring, $regs)) {
+ $this->uadata['os'] = $regs[2];
+ $this->uadata['lang'] = null;
+ $this->uadata['eng_version'] = $regs[3];
+ }
+ elseif (preg_match('|Mozilla/5.0 \(([^;]+); [^;]+; ([^\);]+)\)|', $this->uastring, $regs)) {
+ $this->uadata['os'] = $regs[2];
+ $this->uadata['lang'] = null;
+ $this->uadata['eng_version'] = null;
+ }
+ elseif (preg_match('|Mozilla/5.0 Galeon/[^\(]+ \(([^;]+); ([^;]+);[^\)]+\)|', $this->uastring, $regs)) {
+ $this->uadata['os'] = $regs[2];
+ $this->uadata['lang'] = null;
+ $this->uadata['eng_version'] = null;
+ }
+ elseif (preg_match('|Debian/|', $this->uastring, $regs)) {
+ $this->uadata['os'] = 'Debian Linux';
+ $this->uadata['lang'] = null;
+ $this->uadata['eng_version'] = null;
+ }
}
- elseif (preg_match('|Mozilla/5.0 \(([^;]+); [^;]+; ([^;]+); rv:([^\);]+)(; [^\)]+)?\)|', $this->uastring, $regs)) {
- $this->uadata['os'] = $regs[2];
- $this->uadata['lang'] = null;
- $this->uadata['eng_version'] = $regs[3];
+ elseif ($this->hasEngine('trident') || $this->hasEngine('tasman')) {
+ if (preg_match('/Mozilla\/[^\(]+ \(compatible *; MSP?IE ([^;]+)[^\)]*; ?((?:Mac|Win)[^;]+)[^\)]*\)/i', $this->uastring, $regs)) {
+ $this->uadata['eng_version'] = (strpos($this->uastring,'MSPIE')!==false)?null:$regs[1];
+ $this->uadata['os'] = $regs[2];
+ $this->uadata['lang'] = null;
+ }
+ elseif (preg_match('/Mozilla\/[^\(]+ \(compatible *; MSIE ([^;]+)[^\)]*\)/i', $this->uastring, $regs)) {
+ $this->uadata['eng_version'] = $regs[1];
+ $this->uadata['os'] = null;
+ $this->uadata['lang'] = null;
+ }
+ elseif (preg_match('/Microsoft Internet Explorer\/[^\s]+ \(((?:Mac|Win)[^;\)]+)\)/i', $this->uastring, $regs)) {
+ $this->uadata['eng_version'] = $this->getVersion();
+ $this->uadata['os'] = $regs[1];
+ $this->uadata['lang'] = null;
+ }
+ elseif (preg_match('/Microsoft Pocket Internet Explorer\/[^\s]+/i', $this->uastring, $regs)) {
+ $this->uadata['eng_version'] = null;
+ $this->uadata['os'] = 'Windows CE';
+ $this->uadata['lang'] = null;
+ }
}
- elseif (preg_match('|Mozilla/5.0 \(([^;]+); [^;]+; ([^;]+); ([^;]+); m([^\);]+)\)|', $this->uastring, $regs)) {
- $this->uadata['os'] = $regs[2];
- $this->uadata['lang'] = $regs[3];
- $this->uadata['eng_version'] = 'M'.$regs[4];
- }
- elseif (preg_match('|Mozilla/5.0 \(([^;]+); [^;]+; ([^;]+); m([^\);]+)\)|', $this->uastring, $regs)) {
- $this->uadata['os'] = $regs[1];
- $this->uadata['lang'] = $regs[2];
- $this->uadata['eng_version'] = 'M'.$regs[3];
- }
- elseif (preg_match('|Mozilla/5.0 \(([^;]+); [^;]+; ([^;]+); ([^\);]+)\)|', $this->uastring, $regs)) {
- $this->uadata['os'] = $regs[2];
- $this->uadata['lang'] = $regs[3];
- $this->uadata['eng_version'] = null;
+ elseif ($this->hasEngine('khtml')) {
+ if (preg_match('/Mozilla\/[^\(]+ \(compatible; Konqueror\/([^;]+); ([^;]+); ([^;]+); ([^;]+); ([^\);]+)\)(?: KHTML\/([0-9a-zA-Z\.+]+))?/i', $this->uastring, $regs)) {
+ $this->uadata['eng_version'] = strlen($regs[6])?$regs[6]:$regs[1];
+ $this->uadata['os'] = $regs[2];
+ $this->uadata['lang'] = $regs[5];
+ }
+ elseif (preg_match('/Mozilla\/[^\(]+ \(compatible; Konqueror\/([^;]+); ([^\);]+)[^\)]*\)(?: KHTML\/([0-9a-zA-Z\.+]+))?/i', $this->uastring, $regs)) {
+ $this->uadata['eng_version'] = strlen($regs[3])?$regs[3]:$regs[1];
+ $this->uadata['os'] = $regs[2];
+ $this->uadata['lang'] = null;
+ }
+ elseif (preg_match('|Mozilla/5.0 \(([^;]+); U; ([^;]+); ([^\);]+)\)|', $this->uastring, $regs)) {
+ if (strpos($regs[3], '/') !== false) {
+ $this->uadata['os'] = $regs[1];
+ $this->uadata['lang'] = null;
+ }
+ else {
+ $this->uadata['os'] = $regs[2];
+ $this->uadata['lang'] = $regs[3];
+ }
+ $this->uadata['eng_version'] = null;
+ }
+ elseif (preg_match('|Mozilla/5.0 \(([^;]+); U; ([^\);]+)\)|', $this->uastring, $regs)) {
+ $this->uadata['os'] = $regs[1];
+ $this->uadata['lang'] = $regs[2];
+ $this->uadata['eng_version'] = null;
+ }
+ elseif (preg_match('/Mozilla\/[^\(]+ \(compatible; [^;]+; ([^\);]+)\)/i', $this->uastring, $regs)) {
+ $this->uadata['os'] = $regs[1];
+ $this->uadata['lang'] = null;
+ $this->uadata['eng_version'] = null;
+ }
+ elseif (preg_match('/Midori\/[^\(]+ \((?:X11; )?([^;]+); U; ([^\)]+)\) WebKit/i', $this->uastring, $regs)) {
+ $this->uadata['eng_version'] = null;
+ $this->uadata['os'] = $regs[1];
+ $this->uadata['lang'] = $regs[2];
+ }
}
- elseif (preg_match('|Mozilla/5.0 \(([^;]+); ([^;]+); rv:([^\);]+)\)|', $this->uastring, $regs)) {
- $this->uadata['os'] = $regs[2];
- $this->uadata['lang'] = null;
- $this->uadata['eng_version'] = $regs[3];
- }
- elseif (preg_match('|Mozilla/5.0 \(([^;]+); [^;]+; ([^\);]+)\)|', $this->uastring, $regs)) {
- $this->uadata['os'] = $regs[2];
- $this->uadata['lang'] = null;
- $this->uadata['eng_version'] = null;
- }
- elseif (preg_match('|Mozilla/5.0 Galeon/[^\(]+ \(([^;]+); ([^;]+);[^\)]+\)|', $this->uastring, $regs)) {
- $this->uadata['os'] = $regs[2];
- $this->uadata['lang'] = null;
- $this->uadata['eng_version'] = null;
- }
- elseif (preg_match('|Debian/|', $this->uastring, $regs)) {
- $this->uadata['os'] = 'Debian Linux';
- $this->uadata['lang'] = null;
- $this->uadata['eng_version'] = null;
- }
- }
- elseif ($this->hasEngine('trident') || $this->hasEngine('tasman')) {
- if (preg_match('/Mozilla\/[^\(]+ \(compatible *; MSP?IE ([^;]+)[^\)]*; ?((?:Mac|Win)[^;]+)[^\)]*\)/i', $this->uastring, $regs)) {
- $this->uadata['eng_version'] = (strpos($this->uastring,'MSPIE')!==false)?null:$regs[1];
- $this->uadata['os'] = $regs[2];
- $this->uadata['lang'] = null;
+ elseif ($this->hasEngine('presto')) {
+ // Opera < 8
+ if (preg_match('/Opera\/[^\(]+ \((?:X11; )?([^;]+)[^\)]+\) +\[([a-z_-]+)\]/i', $this->uastring, $regs)) {
+ $this->uadata['eng_version'] = $this->getVersion();
+ $this->uadata['os'] = $regs[1];
+ $this->uadata['lang'] = $regs[2];
+ }
+ elseif (preg_match('/Mozilla\/[^\(]+ \(compatible; MSIE [^;]+; (?:X11; )?([^;\)]+)[^\)]*\) Opera [^ ]+\s+\[([a-z_-]+)\]/i', $this->uastring, $regs)) {
+ $this->uadata['eng_version'] = $this->getVersion();
+ $this->uadata['os'] = $regs[1];
+ $this->uadata['lang'] = $regs[2];
+ }
+ elseif (preg_match('/Mozilla\/[^\(]+ \((?:X11; )?([^;]+);.+\) Opera [^ ]+\s+\[([a-z_-]+)\]/i', $this->uastring, $regs)) {
+ $this->uadata['eng_version'] = $this->getVersion();
+ $this->uadata['os'] = $regs[1];
+ $this->uadata['lang'] = $regs[2];
+ }
+ // Opera mini
+ elseif (preg_match('/Opera\/([^\(]+) \((?:X11; )?([^;]+); Opera Mini; ([a-z_-]+); /i', $this->uastring, $regs)) {
+ $this->uadata['eng_version'] = null;
+ $this->uadata['os'] = $regs[2];
+ $this->uadata['lang'] = $regs[3];
+ }
+ elseif (preg_match('/Opera\/([^\(]+) \((?:X11; )?([^;]+); Opera Mini\/[^;]+; ([a-z_-]+); /i', $this->uastring, $regs)) {
+ $this->uadata['eng_version'] = $regs[1];
+ $this->uadata['os'] = $regs[2];
+ $this->uadata['lang'] = $regs[3];
+ }
+ // Opera >= 8
+ elseif (preg_match('/Opera\/[^\(]+ \((?:X11; )?([^;]+); [^\)]+; ([a-z_-]+)\)/i', $this->uastring, $regs)) {
+ $this->uadata['eng_version'] = $this->getVersion();
+ $this->uadata['os'] = $regs[1];
+ $this->uadata['lang'] = $regs[2];
+ }
+ elseif (preg_match('/Mozilla\/[^\(]+ \(compatible; MSIE [^;]+; (?:X11; )?([^;]+); ([a-z_-]+)\) Opera [^ ]+/i', $this->uastring, $regs)) {
+ $this->uadata['eng_version'] = $this->getVersion();
+ $this->uadata['os'] = $regs[1];
+ $this->uadata['lang'] = $regs[2];
+ }
+ elseif (preg_match('/Mozilla\/[^\(]+ \((?:X11; )?([^;]+);.+; ([a-z_-]+)\) Opera [^ ]+/i', $this->uastring, $regs)) {
+ $this->uadata['eng_version'] = $this->getVersion();
+ $this->uadata['os'] = $regs[1];
+ $this->uadata['lang'] = $regs[2];
+ }
+ // Opera 9 Firefox-spoofing
+ elseif (preg_match('/Mozilla\/[^\(]+ \((?:X11; )?([^;]+);.+; ([a-z_-]+); rv:([^\);]+)\) Gecko\/\d+ Firefox\/[0-9a-zA-Z\.+]+ Opera [^ ]+/i', $this->uastring, $regs)) {
+ $this->uadata['eng_version'] = $this->getVersion();
+ $this->uadata['os'] = $regs[1];
+ $this->uadata['lang'] = $regs[2];
+ }
}
- elseif (preg_match('/Mozilla\/[^\(]+ \(compatible *; MSIE ([^;]+)[^\)]*\)/i', $this->uastring, $regs)) {
- $this->uadata['eng_version'] = $regs[1];
- $this->uadata['os'] = null;
- $this->uadata['lang'] = null;
+ elseif ($this->hasEngine('nscp')) {
+ if (preg_match('/Mozilla\/([0-9a-zA-Z\.+]+) (?:\[([a-z_-]+)\][^\(]+)?\(X11; [^;]+; ([^\)]+)\)/i', $this->uastring, $regs)) {
+ $this->uadata['eng_version'] = $regs[1];
+ $this->uadata['os'] = $regs[3];
+ $this->uadata['lang'] = $regs[2];
+ }
+ elseif (preg_match('/Mozilla\/([0-9a-zA-Z\.+]+) (?:\[([a-z_-]+)\][^\(]+)?\(([^;]+);[^\)]+\)/i', $this->uastring, $regs)) {
+ $this->uadata['eng_version'] = $regs[1];
+ $this->uadata['os'] = $regs[3];
+ $this->uadata['lang'] = $regs[2];
+ }
+ elseif (preg_match('/Mozilla\/([0-9a-zA-Z\.+]+)[^\(]+\(([^;]+);[^\)]+\)/i', $this->uastring, $regs)) {
+ $this->uadata['eng_version'] = $regs[1];
+ $this->uadata['os'] = $regs[2];
+ $this->uadata['lang'] = null;
+ }
}
- elseif (preg_match('/Microsoft Internet Explorer\/[^\s]+ \(((?:Mac|Win)[^;\)]+)\)/i', $this->uastring, $regs)) {
+ elseif ($this->hasEngine('gzilla')) {
$this->uadata['eng_version'] = $this->getVersion();
- $this->uadata['os'] = $regs[1];
- $this->uadata['lang'] = null;
- }
- elseif (preg_match('/Microsoft Pocket Internet Explorer\/[^\s]+/i', $this->uastring, $regs)) {
- $this->uadata['eng_version'] = null;
- $this->uadata['os'] = 'Windows CE';
- $this->uadata['lang'] = null;
- }
- }
- elseif ($this->hasEngine('khtml')) {
- if (preg_match('/Mozilla\/[^\(]+ \(compatible; Konqueror\/([^;]+); ([^;]+); ([^;]+); ([^;]+); ([^\);]+)\)(?: KHTML\/([0-9a-zA-Z\.+]+))?/i', $this->uastring, $regs)) {
- $this->uadata['eng_version'] = strlen($regs[6])?$regs[6]:$regs[1];
- $this->uadata['os'] = $regs[2];
- $this->uadata['lang'] = $regs[5];
- }
- elseif (preg_match('/Mozilla\/[^\(]+ \(compatible; Konqueror\/([^;]+); ([^\);]+)[^\)]*\)(?: KHTML\/([0-9a-zA-Z\.+]+))?/i', $this->uastring, $regs)) {
- $this->uadata['eng_version'] = strlen($regs[3])?$regs[3]:$regs[1];
- $this->uadata['os'] = $regs[2];
- $this->uadata['lang'] = null;
- }
- elseif (preg_match('|Mozilla/5.0 \(([^;]+); U; ([^;]+); ([^\);]+)\)|', $this->uastring, $regs)) {
- $this->uadata['os'] = $regs[2];
- $this->uadata['lang'] = $regs[3];
- $this->uadata['eng_version'] = null;
- }
- elseif (preg_match('|Mozilla/5.0 \(([^;]+); U; ([^\);]+)\)|', $this->uastring, $regs)) {
- $this->uadata['os'] = $regs[1];
- $this->uadata['lang'] = $regs[2];
- $this->uadata['eng_version'] = null;
- }
- elseif (preg_match('/Mozilla\/[^\(]+ \(compatible; [^;]+; ([^\);]+)\)/i', $this->uastring, $regs)) {
- $this->uadata['os'] = $regs[1];
+ $this->uadata['os'] = null;
$this->uadata['lang'] = null;
- $this->uadata['eng_version'] = null;
- }
- }
- elseif ($this->hasEngine('presto')) {
- // Opera < 8
- if (preg_match('/Opera\/[^\(]+ \((?:X11; )?([^;]+)[^\)]+\) +\[([a-z_-]+)\]/i', $this->uastring, $regs)) {
- $this->uadata['eng_version'] = $this->getVersion();
- $this->uadata['os'] = $regs[1];
- $this->uadata['lang'] = $regs[2];
- }
- elseif (preg_match('/Mozilla\/[^\(]+ \(compatible; MSIE [^;]+; (?:X11; )?([^;\)]+)[^\)]*\) Opera [^ ]+ +\[([a-z_-]+)\]/i', $this->uastring, $regs)) {
- $this->uadata['eng_version'] = $this->getVersion();
- $this->uadata['os'] = $regs[1];
- $this->uadata['lang'] = $regs[2];
- }
- elseif (preg_match('/Mozilla\/[^\(]+ \((?:X11; )?([^;]+);.+\) Opera [^ ]+ \[([a-z_-]+)\]/i', $this->uastring, $regs)) {
- $this->uadata['eng_version'] = $this->getVersion();
- $this->uadata['os'] = $regs[1];
- $this->uadata['lang'] = $regs[2];
}
- // Opera mini
- elseif (preg_match('/Opera\/([^\(]+) \((?:X11; )?([^;]+); Opera Mini; ([a-z_-]+); /i', $this->uastring, $regs)) {
- $this->uadata['eng_version'] = null;
- $this->uadata['os'] = $regs[2];
- $this->uadata['lang'] = $regs[3];
- }
- elseif (preg_match('/Opera\/([^\(]+) \((?:X11; )?([^;]+); Opera Mini\/[^;]+; ([a-z_-]+); /i', $this->uastring, $regs)) {
- $this->uadata['eng_version'] = $regs[1];
- $this->uadata['os'] = $regs[2];
- $this->uadata['lang'] = $regs[3];
- }
- // Opera >= 8
- elseif (preg_match('/Opera\/[^\(]+ \((?:X11; )?([^;]+); [^\)]+; ([a-z_-]+)\)/i', $this->uastring, $regs)) {
- $this->uadata['eng_version'] = $this->getVersion();
- $this->uadata['os'] = $regs[1];
- $this->uadata['lang'] = $regs[2];
+ elseif ($this->hasEngine('links')) {
+ if (preg_match('/E?Links[^\(]+\([^;]+; ([^;]+)[^\)]+\)/i', $this->uastring, $regs)) {
+ $this->uadata['eng_version'] = null;
+ $this->uadata['os'] = $regs[1];
+ $this->uadata['lang'] = null;
+ }
}
- elseif (preg_match('/Mozilla\/[^\(]+ \(compatible; MSIE [^;]+; (?:X11; )?([^;]+); ([a-z_-]+)\) Opera [^ ]+/i', $this->uastring, $regs)) {
+ elseif ($this->hasEngine('lynx')) {
$this->uadata['eng_version'] = $this->getVersion();
- $this->uadata['os'] = $regs[1];
- $this->uadata['lang'] = $regs[2];
- }
- elseif (preg_match('/Mozilla\/[^\(]+ \((?:X11; )?([^;]+);.+; ([a-z_-]+)\) Opera [^ ]+/i', $this->uastring, $regs)) {
- $this->uadata['eng_version'] = $this->getVersion();
- $this->uadata['os'] = $regs[1];
- $this->uadata['lang'] = $regs[2];
- }
- // Opera 9 Firefox-spoofing
- elseif (preg_match('/Mozilla\/[^\(]+ \((?:X11; )?([^;]+);.+; ([a-z_-]+); rv:([^\);]+)\) Gecko\/\d+ Firefox\/[0-9a-zA-Z\.+]+ Opera [^ ]+/i', $this->uastring, $regs)) {
- $this->uadata['eng_version'] = $this->getVersion();
- $this->uadata['os'] = $regs[1];
- $this->uadata['lang'] = $regs[2];
- }
- }
- elseif ($this->hasEngine('nscp')) {
- if (preg_match('/Mozilla\/([0-9a-zA-Z\.+]+) (?:\[([a-z_-]+)\][^\(]+)?\(X11; [^;]+; ([^\)]+)\)/i', $this->uastring, $regs)) {
- $this->uadata['eng_version'] = $regs[1];
- $this->uadata['os'] = $regs[3];
- $this->uadata['lang'] = $regs[2];
- }
- elseif (preg_match('/Mozilla\/([0-9a-zA-Z\.+]+) (?:\[([a-z_-]+)\][^\(]+)?\(([^;]+);[^\)]+\)/i', $this->uastring, $regs)) {
- $this->uadata['eng_version'] = $regs[1];
- $this->uadata['os'] = $regs[3];
- $this->uadata['lang'] = $regs[2];
- }
- elseif (preg_match('/Mozilla\/([0-9a-zA-Z\.+]+)[^\(]+\(([^;]+);[^\)]+\)/i', $this->uastring, $regs)) {
- $this->uadata['eng_version'] = $regs[1];
- $this->uadata['os'] = $regs[2];
+ $this->uadata['os'] = null;
$this->uadata['lang'] = null;
}
- }
- elseif ($this->hasEngine('gzilla')) {
- $this->uadata['eng_version'] = $this->getVersion();
- $this->uadata['os'] = null;
- $this->uadata['lang'] = null;
- }
- elseif ($this->hasEngine('links')) {
- if (preg_match('/E?Links[^\(]+\([^;]+; ([^;]+)[^\)]+\)/i', $this->uastring, $regs)) {
- $this->uadata['eng_version'] = null;
- $this->uadata['os'] = $regs[1];
- $this->uadata['lang'] = null;
+ elseif ($this->hasEngine('icestorm')) {
+ if (preg_match('/ICE Browser\/v?([0-9a-zA-Z\._+]+) \(Java [^;]+; ([^\)]+)\)/i', $this->uastring, $regs)) {
+ $this->uadata['eng_version'] = str_replace('_', '.', $regs[1]);
+ $this->uadata['os'] = $regs[2];
+ $this->uadata['lang'] = null;
+ }
+ elseif (preg_match('/Mozilla\/[^\(]+ \((?:X11; )?([^;]+);.+; ([a-z_-]+)\).* ICEbrowser\/([0-9a-zA-Z\._+]+)/i', $this->uastring, $regs)) {
+ $this->uadata['eng_version'] = $regs[3];
+ $this->uadata['os'] = $regs[1];
+ $this->uadata['lang'] = $regs[2];
+ }
}
- }
- elseif ($this->hasEngine('icestorm')) {
- if (preg_match('/ICE Browser\/v?([0-9a-zA-Z\._+]+) \(Java [^;]+; ([^\)]+)\)/i', $this->uastring, $regs)) {
- $this->uadata['eng_version'] = str_replace('_', '.', $regs[1]);
- $this->uadata['os'] = $regs[2];
+ else {
+ $this->uadata['eng_version'] = null;
$this->uadata['lang'] = null;
+ if (preg_match('/AmigaOS/i', $this->uastring, $regs)) {
+ $this->uadata['os'] = 'AmigaOS';
+ }
+ if (preg_match('/Commodore 64/i', $this->uastring, $regs)) {
+ $this->uadata['os'] = 'Commodore 64';
+ }
+ elseif (preg_match('/curl\/[^\(]+\(([^\);]+)/i', $this->uastring, $regs)) {
+ $this->uadata['os'] = $regs[1];
+ }
+ elseif (preg_match('/NCSA[_ ]Mosaic\/[^\(]+\((?:.*;)?([^\);]+)/i', $this->uastring, $regs)) {
+ $this->uadata['os'] = trim($regs[1]);
+ }
+ elseif (preg_match('/iCab.*(Mac[^\);]+).*?\)/i', $this->uastring, $regs)) {
+ $this->uadata['os'] = trim($regs[1]);
+ }
+ elseif (preg_match('/SymbianOS\/([^ ]+)/i', $this->uastring, $regs)) {
+ $this->uadata['os'] = 'SymbianOS '.$regs[1];
+ }
}
- elseif (preg_match('/Mozilla\/[^\(]+ \((?:X11; )?([^;]+);.+; ([a-z_-]+)\).* ICEbrowser\/([0-9a-zA-Z\._+]+)/i', $this->uastring, $regs)) {
- $this->uadata['eng_version'] = $regs[3];
- $this->uadata['os'] = $regs[1];
- $this->uadata['lang'] = $regs[2];
- }
- }
- else {
- $this->uadata['eng_version'] = null;
- $this->uadata['lang'] = null;
- if (preg_match('/AmigaOS/i', $this->uastring, $regs)) {
- $this->uadata['os'] = 'AmigaOS';
- }
- if (preg_match('/Commodore 64/i', $this->uastring, $regs)) {
- $this->uadata['os'] = 'Commodore 64';
- }
- elseif (preg_match('/curl\/[^\(]+\(([^\);]+)/i', $this->uastring, $regs)) {
- $this->uadata['os'] = $regs[1];
- }
- elseif (preg_match('/NCSA[_ ]Mosaic\/[^\(]+\((?:.*;)?([^\);]+)/i', $this->uastring, $regs)) {
- $this->uadata['os'] = trim($regs[1]);
- }
- elseif (preg_match('/iCab.*(Mac[^\);]+).*?\)/i', $this->uastring, $regs)) {
- $this->uadata['os'] = trim($regs[1]);
- }
- elseif (preg_match('/SymbianOS\/([^ ]+)/i', $this->uastring, $regs)) {
- $this->uadata['os'] = 'SymbianOS '.$regs[1];
- }
- }
- if ($this->uadata['os'] == 'Win 9x 4.90') { $this->uadata['os'] = 'Windows ME'; }
- elseif ($this->uadata['os'] == 'WinNT4.0') { $this->uadata['os'] = 'Windows NT 4.0'; }
- elseif ($this->uadata['os'] == 'Windows NT 5.0') { $this->uadata['os'] = 'Windows 2000'; }
- elseif ($this->uadata['os'] == 'Windows NT 5.1') { $this->uadata['os'] = 'Windows XP'; }
- elseif ($this->uadata['os'] == 'Windows NT 5.2') { $this->uadata['os'] = 'Windows 2003'; }
- elseif ($this->uadata['os'] == 'Windows NT 5.2 x64') { $this->uadata['os'] = 'Windows 2003 (64bit)'; }
- elseif ($this->uadata['os'] == 'Windows NT 6.0') { $this->uadata['os'] = 'Windows Vista'; }
- elseif ($this->uadata['os'] == 'Win95') { $this->uadata['os'] = 'Windows 95'; }
- elseif ($this->uadata['os'] == 'Win98') { $this->uadata['os'] = 'Windows 98'; }
- elseif ($this->uadata['os'] == 'WinNT') { $this->uadata['os'] = 'Windows NT'; }
- elseif ($this->uadata['os'] == 'Win32') { $this->uadata['os'] = 'Windows (32bit)'; }
- elseif ($this->uadata['os'] == 'Win64') { $this->uadata['os'] = 'Windows (64bit)'; }
- elseif (preg_match('/Mac ?OS ?X/i',$this->uadata['os'])) { $this->uadata['os'] = 'MacOS X'; }
- elseif (preg_match('/Mac_P(ower|)PC/i',$this->uadata['os'])) { $this->uadata['os'] = 'MacOS'; }
- elseif (strpos($this->uadata['os'], 'darwin') !== false) { $this->uadata['os'] = 'MacOS X'; }
- elseif (strpos($this->uadata['os'], 'Darwin') !== false) { $this->uadata['os'] = 'MacOS X'; }
- elseif (strpos($this->uadata['os'], 'apple') !== false) { $this->uadata['os'] = 'MacOS'; }
- elseif (strpos($this->uadata['os'], 'Macintosh') !== false) { $this->uadata['os'] = 'MacOS'; }
- elseif (strpos($this->uadata['os'], 'linux') !== false) { $this->uadata['os'] = 'Linux'; }
- elseif (preg_match('/Symbian ?OS/i',$this->uadata['os'])) { $this->uadata['os'] = 'SymbianOS'; }
+ if ($this->uadata['os'] == 'Win 9x 4.90') { $this->uadata['os'] = 'Windows ME'; }
+ elseif ($this->uadata['os'] == 'WinNT4.0') { $this->uadata['os'] = 'Windows NT 4.0'; }
+ elseif ($this->uadata['os'] == 'Windows NT 5.0') { $this->uadata['os'] = 'Windows 2000'; }
+ elseif ($this->uadata['os'] == 'Windows NT 5.1') { $this->uadata['os'] = 'Windows XP'; }
+ elseif ($this->uadata['os'] == 'Windows NT 5.2') { $this->uadata['os'] = 'Windows 2003'; }
+ elseif ($this->uadata['os'] == 'Windows NT 5.2 x64') { $this->uadata['os'] = 'Windows 2003 (64bit)'; }
+ elseif ($this->uadata['os'] == 'Windows NT 6.0') { $this->uadata['os'] = 'Windows Vista'; }
+ elseif ($this->uadata['os'] == 'Windows NT 6.1') { $this->uadata['os'] = 'Windows 7'; }
+ elseif ($this->uadata['os'] == 'Win95') { $this->uadata['os'] = 'Windows 95'; }
+ elseif ($this->uadata['os'] == 'Win98') { $this->uadata['os'] = 'Windows 98'; }
+ elseif ($this->uadata['os'] == 'WinNT') { $this->uadata['os'] = 'Windows NT'; }
+ elseif ($this->uadata['os'] == 'Win32') { $this->uadata['os'] = 'Windows (32bit)'; }
+ elseif ($this->uadata['os'] == 'Win64') { $this->uadata['os'] = 'Windows (64bit)'; }
+ elseif (preg_match('/Mac ?OS ?X/i',$this->uadata['os'])) { $this->uadata['os'] = 'MacOS X'; }
+ elseif (preg_match('/Mac_P(ower|)PC/i',$this->uadata['os'])) { $this->uadata['os'] = 'MacOS'; }
+ elseif (strpos($this->uadata['os'], 'darwin') !== false) { $this->uadata['os'] = 'MacOS X'; }
+ elseif (strpos($this->uadata['os'], 'Darwin') !== false) { $this->uadata['os'] = 'MacOS X'; }
+ elseif (strpos($this->uadata['os'], 'apple') !== false) { $this->uadata['os'] = 'MacOS'; }
+ elseif (strpos($this->uadata['os'], 'Macintosh') !== false) { $this->uadata['os'] = 'MacOS'; }
+ elseif (strpos($this->uadata['os'], 'linux') !== false) { $this->uadata['os'] = 'Linux'; }
+ elseif (preg_match('/SymbianOS[\/ ]([0-9a-zA-Z\._+]+)/i', $this->uastring, $regs)) { $this->uadata['os'] = 'SymbianOS '.$regs[1]; }
+ elseif (preg_match('/Symbian ?OS/i',$this->uadata['os'])) { $this->uadata['os'] = 'SymbianOS'; }
- if (strpos($this->uadata['os'], 'Win') !== false) { $this->uadata['platform'] = 'Windows'; }
- elseif (strpos($this->uadata['os'], 'Mac') !== false) { $this->uadata['platform'] = 'Macintosh'; }
- elseif (strpos($this->uadata['os'], 'Linux') !== false) { $this->uadata['platform'] = 'Linux'; }
- elseif (strpos($this->uadata['os'], 'Solaris') !== false) { $this->uadata['platform'] = 'Solaris'; }
- elseif (strpos($this->uadata['os'], 'SunOS') !== false) { $this->uadata['platform'] = 'Solaris'; }
- elseif (strpos($this->uadata['os'], 'BeOS') !== false) { $this->uadata['platform'] = 'BeOS'; }
- elseif (strpos($this->uadata['os'], 'FreeBSD') !== false) { $this->uadata['platform'] = 'FreeBSD'; }
- elseif (strpos($this->uadata['os'], 'OpenBSD') !== false) { $this->uadata['platform'] = 'OpenBSD'; }
- elseif (strpos($this->uadata['os'], 'NetBSD') !== false) { $this->uadata['platform'] = 'NetBSD'; }
- elseif (strpos($this->uadata['os'], 'AIX') !== false) { $this->uadata['platform'] = 'AIX'; }
- elseif (strpos($this->uadata['os'], 'IRIX') !== false) { $this->uadata['platform'] = 'IRIX'; }
- elseif (strpos($this->uadata['os'], 'HP-UX') !== false) { $this->uadata['platform'] = 'HP-UX'; }
- elseif (strpos($this->uadata['os'], 'AmigaOS') !== false) { $this->uadata['platform'] = 'Amiga'; }
- elseif (strpos($this->uadata['os'], 'Commodore 64') !== false) { $this->uadata['platform'] = 'C64'; }
- elseif (strpos($this->uadata['os'], 'OpenVMS') !== false) { $this->uadata['platform'] = 'OpenVMS'; }
- elseif (strpos($this->uadata['os'], 'Warp') !== false) { $this->uadata['platform'] = 'OS/2'; }
- elseif (strpos($this->uadata['os'], 'SymbianOS') !== false) { $this->uadata['platform'] = 'SymbianOS'; }
- elseif (strpos($this->uadata['os'], 'CYGWIN') !== false) { $this->uadata['platform'] = 'Windows'; }
- else { $this->uadata['platform'] = $this->uadata['os']; }
+ if (strpos($this->uadata['os'], 'Win') !== false) { $this->uadata['platform'] = 'Windows'; }
+ elseif (strpos($this->uadata['os'], 'Mac') !== false) { $this->uadata['platform'] = 'Macintosh'; }
+ elseif (strpos($this->uadata['os'], 'Linux') !== false) { $this->uadata['platform'] = 'Linux'; }
+ elseif (strpos($this->uadata['os'], 'Solaris') !== false) { $this->uadata['platform'] = 'Solaris'; }
+ elseif (strpos($this->uadata['os'], 'SunOS') !== false) { $this->uadata['platform'] = 'Solaris'; }
+ elseif (strpos($this->uadata['os'], 'BeOS') !== false) { $this->uadata['platform'] = 'BeOS'; }
+ elseif (strpos($this->uadata['os'], 'BePC') !== false) { $this->uadata['platform'] = 'BeOS'; }
+ elseif (strpos($this->uadata['os'], 'FreeBSD') !== false) { $this->uadata['platform'] = 'FreeBSD'; }
+ elseif (strpos($this->uadata['os'], 'OpenBSD') !== false) { $this->uadata['platform'] = 'OpenBSD'; }
+ elseif (strpos($this->uadata['os'], 'NetBSD') !== false) { $this->uadata['platform'] = 'NetBSD'; }
+ elseif (strpos($this->uadata['os'], 'AIX') !== false) { $this->uadata['platform'] = 'AIX'; }
+ elseif (strpos($this->uadata['os'], 'IRIX') !== false) { $this->uadata['platform'] = 'IRIX'; }
+ elseif (strpos($this->uadata['os'], 'HP-UX') !== false) { $this->uadata['platform'] = 'HP-UX'; }
+ elseif (strpos($this->uadata['os'], 'AmigaOS') !== false) { $this->uadata['platform'] = 'Amiga'; }
+ elseif (strpos($this->uadata['os'], 'webOS') !== false) { $this->uadata['platform'] = 'webOS'; }
+ elseif (strpos($this->uadata['os'], 'Commodore 64') !== false) { $this->uadata['platform'] = 'C64'; }
+ elseif (strpos($this->uadata['os'], 'OpenVMS') !== false) { $this->uadata['platform'] = 'OpenVMS'; }
+ elseif (strpos($this->uadata['os'], 'Warp') !== false) { $this->uadata['platform'] = 'OS/2'; }
+ elseif (strpos($this->uadata['os'], 'OS/2') !== false) { $this->uadata['platform'] = 'OS/2'; }
+ elseif (strpos($this->uadata['os'], 'SymbianOS') !== false) { $this->uadata['platform'] = 'SymbianOS'; }
+ elseif (strpos($this->uadata['os'], 'Gameboy') !== false) { $this->uadata['platform'] = 'Nintendo'; }
+ elseif (strpos($this->uadata['os'], 'Wii') !== false) { $this->uadata['platform'] = 'Nintendo'; }
+ elseif (strpos($this->uadata['os'], 'Nintendo') !== false) { $this->uadata['platform'] = 'Nintendo'; }
+ elseif (strpos($this->uadata['os'], 'J2ME') !== false) { $this->uadata['platform'] = 'Java'; }
+ elseif (strpos($this->uadata['os'], 'CYGWIN') !== false) { $this->uadata['platform'] = 'Windows'; }
+ elseif (strpos($this->uadata['os'], 'mingw') !== false) { $this->uadata['platform'] = 'Windows'; }
+ else { $this->uadata['platform'] = $this->uadata['os']; }
- $this->uadata['lang'] = str_replace('_', '-', $this->uadata['lang']);
+ $this->uadata['lang'] = str_replace('_', '-', $this->uadata['lang']);
+ }
}
return $this->uadata['os'];
}
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.7.5) Gecko/20041111 Firefox/1.0
Mozilla/5.0 (X11; Linux i686; rv:1.7.5) Gecko/20041108 Firefox/1.0
Mozilla/5.0 (X11; U; Linux i686; chrome://navigator/locale/navigator.properties; rv:1.7.5) Gecko/20041107 Firefox/1.0
+Mozilla/5.0 (Windows; Windows NT 5.1; en-US; rv:1.9.2a1pre) Gecko/20090402 Firefox/3.6a1pre
Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.5) Gecko/20041217 Firefox/1.0.4
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9a6pre) Gecko/20070702 Minefield/3.0a6pre
+Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.22pre) Gecko/20090415 BonEcho/2.0.0.22pre (.NET CLR 3.5.30729)
+Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.15pre) Gecko/2009090911 GranParadiso/3.0.15pre (.NET CLR 3.5.30729)
+Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.4pre) Gecko/20090923 Shiretoko/3.5.4pre
+Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2a2pre) Gecko/20090917 Namoroka/3.6a2pre
+Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9a9pre) Gecko/2007110108 prism/0.8
+Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.1.4pre) Gecko/20090928 Lightning/1.0pre Shredder/3.0pre
+Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.19) Gecko/20081209 Thunderbird/2.0.0.19 Mnenhy/0.7.5.0
Mozilla/5.0 (X11; U; Linux i686; de-AT; rv:1.8b2) Gecko/20050324 SeaMonkey/1.0a
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9a6pre) Gecko/20070628 Firefox/2.0.0.4 SeaMonkey/2.0a1pre PrivatelyFakedUA/0.0
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US; rv:1.0.1) Gecko/20021109 Chimera/0.6+
Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en; rv:1.8.1.5) Gecko/20070614 Camino/1.6 (like Firefox/2.0.0.4)
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031016 K-Meleon/0.8.1
Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.7.13) Gecko/20050610 K-Meleon/0.9
+Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.11) Gecko/2009061613 Songbird/1.3.0a (20090624013030)
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US; rv:1.0.1) Gecko/20020730 AOL/7.0
Mozilla/5.0 (Windows; U; Windows CE 4.21; rv:1.8b4) Gecko/20050720 Minimo/0.007
+Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2a1pre) Gecko/20090317 Fennec/1.0b1
+Mozilla/5.0 (X11; U; Linux armv7l; en-US; rv:1.9.2b1pre) Gecko/20090924 Fennec/1.0b4pre
+Mozilla/5.0 (BeOS; U; Haiku BePC; en-US; rv:1.8.1.22pre) Gecko/20090908 BeZillaBrowser/2.0.0.22pre
+Mozilla/5.0 (OS/2; U; Warp 4.5; en-US; rv:1.8.1.21) Gecko/20090410 PmWFx/2.0.0.21
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.7) Gecko/20061031 Firefox/1.5.0.7 Flock/0.7.7
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1) Gecko/20061024 Iceweasel/2.0 (Debian-2.0+dfsg-1)
Mozilla/5.0 (X11; U; Linux armv6l; en-GB; rv:1.9a6pre) Gecko/20071128 Firefox/3.0a1 Tablet browser 0.2.2 RX-34+RX-44_2008SE_2.2007.48-9
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/125.4 (KHTML, like Gecko, Safari) OmniWeb/v563.51
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/418 (KHTML, like Gecko) Shiira/1.2.2 Safari/125
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13
+Mozilla/5.0 (SymbianOS/9.4; U; Series60/5.0 Nokia5800d-1/21.0.025; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413
Mozilla/5.0 (SymbianOS/9.1; U; en-us) AppleWebKit/413 (KHTML, like Gecko) Safari/413
+Mozilla/5.0 (webOS/1.1; U; en-US) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/1.0 Safari/525.27.1 Pre/1.0
+Midori/0.1.9 (X11; Linux i686; U; en-us) WebKit/532+
+Mozilla/5.0 (X11; U; Linux x86_64; cs-cz) AppleWebKit/531.2+ (KHTML, like Gecko) Safari/531.2+ Epiphany/2.27.91 SUSE/2.27.91-1.2
Opera/5.12 (Windows 2000; U) [de]
Mozilla/4.0 (compatible; MSIE 5.0; Windows XP) Opera 6.05 [ja]
Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux i586) Opera 7.23 [en]
Mozilla/4.0 (compatible; MSIE 6.0; Mac_PowerPC Mac OS X; en) Opera 8.0
Opera/8.00 (Windows NT 5.1; U; en)
Opera/8.01 (X11; Linux i686; U; de)
+Opera/9.30 (Nintendo Wii; U; ; 3642; en)
Mozilla/5.0 (X11; Linux i686; U; en) Opera 8.01
Mozilla/5.0 (Windows NT 5.2; U; cs; rv:1.8.0) Gecko/20060728 Firefox/1.5.0 Opera 9.20
Mozilla/4.0 (compatible; MSIE 5.0; Mac_PowerPC) Opera 6.0 [de]
+Mozilla/5.0 (X11; Linux i686; U) Opera 7.54 [de]
Mozilla/4.1 (compatible; MSIE 5.0; Symbian OS; Nokia 6600;423) Opera 6.10 [de]
Mozilla/4.0 (compatible; MSIE 6.0; Symbian OS; Nokia 6630/4.03.38; 6937) Opera 8.50 [es]
Mozilla/4.0 (compatible; MSIE 6.0; ; Linux armv5tejl; U) Opera 8.02 [en_US] Maemo browser 0.4.31 N770/SU-18
Opera/9.00 (Wii; U; ; 1038-58; Wii Shop Channel/1.0; en)
Opera/8.01 (J2ME/MIDP; Opera Mini/2.0.4509/1316; fi; U; ssr)
Opera/2.0.3920 (J2ME/MIDP; Opera Mini; en; U; ssr)
+Opera/9.60 (J2ME/MIDP; Opera Mini/4.2.14881Mod.by.Handler/960; U; en) Presto/2.2.0
Mozilla/4.75 [de] (Win98; U)
Mozilla/1.6 [en] (Windows NT 5.1; U)
Mozilla/1.0 (CP/M; 8-bit .NET)
Links (2.1pre14; FreeBSD 4.9-RELEASE i386; x)
Links (2.1pre15; CYGWIN_NT-5.0 1.3.1(0.38/3/2) i686; x)
Links (1.00pre12; Linux 2.6.10-grsec i686; 139x54) (Debian pkg 0.99+1.00pre12-1)
+Lynx/2.8.4rel.1 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/0.9.6g
Mozilla/5.0 (compatible; iCab 2.9.8; Macintosh; U, PPC; Mac OS X)
iCab/2.9.8 (Macintosh; U; PPC)
Mozilla/4.5 (compatible; iCab 2.9.8; Macintosh; U; PPC)
-Lynx/2.8.4rel.1 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/0.9.6g
+Evolution/2.26; Evolution-RSS/0.1.2
NCSA_Mosaic/2.0 (Windows 3.1)
NCSA_Mosaic/1.0 (X11; FreeBSD 1.2.0 i286) via proxy gateway CERN-HTTPD/1.0
NCSA Mosaic/2-7-6 (X11;OpenVMS V7.2 VAX)
LWP::Simple/5.79
PHP/4.2.3
w3m/0.5.1
+BlackBerry8120/4.3.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/135
SonyEricssonK700i/R2AE SEMC-Browser/4.0.3 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Link/6.2.3.15.0 (Google WAP Proxy/1.0)
SonyEricssonT610/R201 Profile/MIDP-1.0 Configuration/CLDC-1.0 (Google WAP Proxy/1.0)
Nokia3510i/1.0 (04.01) Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Link/5.1.1.5a (Google WAP Proxy/1.0)
Nokia6630/1.0 (3.45.113) SymbianOS/8.0 Series60/2.6 Profile/MIDP-2.0 Configuration/CLDC-1.1 (Google WAP Proxy/1.0)
SIE-C60/12 UP.Browser/6.1.0.5.c.6 (GUI) MMP/1.0 (Google WAP Proxy/1.0)
OPWV-SDK/62 UP.Browser/6.2.2.1.208 (GUI) MMP/2.0
+Vodafone/1.0/LG-HB620T/V10a Browser/Obigo-Q05A/3.12 MMS/LG-MMS-V1.0/1.2 Java/ASVM/1.1 Profile/MIDP-2.1 Configuration/CLDC-1.1
Mozilla/4.0 (MobilePhone MM-8300/US/1.0) NetFront/3.1 MMP/2.0
-Mozilla/4.0 (MobilePhone SCP-5500/US/1.0) NetFront/3.0 MMP/2.0 FAKE (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Samsung-SPHA920 AU-MIC-A920/2.0 MMP/2.0
MOT-E398/0E.20.59R MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
Mozilla/4.0 (compatible; 240x320) IXI/Q05A2.4
Mozilla/4.0 (compatible; AvantGo 6.0; FreeBSD)
curl/7.7.2 (powerpc-apple-darwin6.0) libcurl 7.7.2 (OpenSSL 0.9.6b)
curl/7.10.6 (i386-redhat-linux-gnu) libcurl/7.10.6 OpenSSL/0.9.7a ipv6 zlib/1.2.0.7
+curl/7.19.3 (i586-pc-mingw32msvc) libcurl/7.19.3 zlib/1.2.3
amaya/8.3 libwww/5.4.0
Python-urllib/1.15
w3m/0.3.1
Mozilla/4.0 (compatible; BorderManager 3.0)
Mozilla/5.0 WebWasher 3.4
Mozilla/5.0 (SaferSurf) Firefox 1.5
+# feed readers:
+Akregator/1.5.1; syndication SUSE
+Bloglines/3.1 (http://www.bloglines.com; 1 subscriber)
+Liferea/1.7.1-svn (Linux; en_US.UTF-8; http://liferea.sf.net/)
+LiveJournal.com (webmaster@livejournal.com; for http://www.livejournal.com/users/kairo_at/; 1 readers)
+Feedfetcher-Google; (+http://www.google.com/feedfetcher.html; 1 subscribers; feed-id=1257454742140558029)
+FeedDemon/3.0 (http://www.feeddemon.com/; Microsoft Windows XP)
+FeedHub FeedDiscovery/1.0 (http://www.feedhub.com)
+FeedHub FeedFetcher/1.0 (http://www.feedhub.com)
+FeedHub MetaDataFetcher/1.0 (http://www.feedhub.com)
+Feed43 Proxy/1.0 (www.feed43.com) Feed4
+Mozilla/5.0 NewsFox/1.0.5.2
+NetNewsWire/3.2b28 (Mac OS X; http://www.newsgator.com/Individuals/NetNewsWire/)
+newsbeuter/0.9.1 (Linux 2.6.26-2-686; i686; http://synflood.at/newsbeuter.html) libcurl/7.18.2 GnuTLS/2.4.2 zlib/1.2.3.3 libidn/1.8
+NewsGator/2.0 Bot (http://www.newsgator.com)
+NewsGatorOnline/2.0 (http://www.newsgator.com; 2 subscribers)
+OutlookConnector/1.9 (TmstmpExt)
+rdfbot/1.0 (rdfbotsupport AT rediffmailpro DOT com)
+RssBandit/1.8.0.870 (.NET CLR 2.0.50727.3082; WinNT 5.1.2600 Service Pack 3; http://www.rssbandit.org)
+RSSOwl/2.0.0.200903042053 (Windows; U; en)
+The MultiZilla Feed Reader/Viewer
+UniversalFeedParser/4.2-pre-293-svn +http://feedparser.org/
+WordPress/2.7
+GreatNews/1.0
# search bots:
W3C_Validator/1.305.2.12 libwww-perl/5.64
Scooter/3.3
Spinne/2.0 med_AH
Vagabondo/2.0 MT (webagent at wise-guys dot nl)
TurnitinBot/1.5 ( ">http://www.turnitin.com/robot/crawlerinfo.html)
+TurnitinBot/2.1 (http://www.turnitin.com/robot/crawlerinfo.html)
FAST-WebCrawler/3.x Multimedia (mm dash crawler at fast dot no)
Firefly/1.0 (compatible; Mozilla 4.0; MSIE 5.5)
Googlebot/2.1 (+ ">http://www.googlebot.com/bot.html)
Googlebot (+http://www.google.com/bot.html)
+Googlebot-Image/1.0
Scrubby/2.2 ( ">http://www.scrubtheweb.com/)
psbot/0.1 (+ ">http://www.picsearch.com/bot.html)
NutchCVS/0.06-dev (Nutch; http://www.nutch.org/docs/en/bot.html; nutch-agent@lists.sourceforge.net)
Gigabot/2.0
Mediapartners-Google/2.1
Schmozilla/v9.14 Platinum
+Austronaut-URL-Checker/0.1 by ThScho
OmniExplorer_Bot/1.07 (+http://www.omni-explorer.com) Internet Categorizer
findlinks/0.926 (+http://wortschatz.uni-leipzig.de/findlinks/)
DataCha0s/2.0
Amfibibot/0.07 (Amfibi Robot; http://www.amfibi.com; agent@amfibi.com)
aipbot/1.0 (aipbot; http://www.aipbot.com; aipbot@aipbot.com)
+CoralWebPrx/0.1.20 (See http://coralcdn.org/)
+DoCoMo/1.0/N505i/c20/TB/W20H10 (compatible; RFCrawler-Mobile/1.0; +http://www.rfms.jp/crawler.html)
+ichiro/3.0 (http://help.goo.ne.jp/door/crawler.html)
+Jyxobot/1
+OOZBOT/0.20 ( http://www.setooz.com/oozbot.html ; agentname at setooz dot_com )
+Ocelli/1.4 (http://www.globalspec.com/Ocelli)
+SeznamBot/2.0 (+http://fulltext.sblog.cz/robot/)
+Sogou Video /3.0(+http://www.sogou.com/docs/help/webmasters.htm#07)
+Snapbot/1.0 (Snap Shots, +http://www.snap.com)
+Yandex/1.01.001 (compatible; Win16; I)
+Yeti/1.0 (NHN Corp.; http://help.naver.com/robots/)
+Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1; aggregator:Spinn3r (Spinn3r 3.1); http://spinn3r.com/robot) Gecko/20021130
+Mozilla/5.0 (compatible; Butterfly/1.0; +http://labs.topsy.com/butterfly.html) Gecko/2009032608 Firefox/3.0.8
Mozilla/4.0 compatible ZyBorg/1.0 Daily Refresh Beta-d03 (wn.zyborg@looksmart.net;
Mozilla/2.0 (compatible; Ask Jeeves/Teoma)
Mozilla/5.0 (Slurp/si; slurp@inktomi.com; ">http://www.inktomi.com/slurp.html)
Mozilla/4.0 (compatible; Arachmo)
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.)
Mozilla/5.0 (compatible; heritrix/1.12.0 +http://www.accelobot.com)
+Mozilla/5.0 (compatible; heritrix1-10-0;+http://www.webintegration.at)
Mozilla/2.0 compatible; Check&Get 1.14 (Windows NT)
Mozilla/3.0 (compatible; WebCapture 2.0; Auto; Windows)
Mozilla/3.0 (compatible; WebMon 1.0.11; Windows XP)
Mozilla/4.0 (compatible; Powermarks/3.5; Windows 95/98/2000/NT)
Mozilla/3.0 (compatible; Linkman)
+Mozilla/5.0 (compatible; arste.info_bot/1.1; +http://www.arste.info)
+Mozilla/5.0 (compatible; askpeter_bot/5.1; +http://www.askpeter.info)
+Mozilla/5.0 (compatible; Feedtrace-bot/0.2; bot@feedtrace.com)
Mozilla/5.0 (Sage)
Mozilla/5.0 (compatible; http://www.livedir.net)
Mozilla/4.0 (WebClipping.com)
Mozilla/5.0 (compatible; Yoono; http://www.yoono.com/)
Mozilla/3.0 (compatible; Indy Library)
Mozilla/5.0 (compatible; Google Desktop)
+Mozilla/5.0 (compatible; iCcrawler - iCjobs Stellenangebote Jobs; http://www.icjobs.de)
+Mozilla/5.0 (compatible; KaloogaBot; http://www.kalooga.com/info.html?page=crawler)
+Mozilla/5.0 (compatible; SecretSerachEngineLabs.com-SBSearch/0.9; http://www.secretsearchenginelabs.com/secret-web-crawler.php)
+Mozilla/5.0 (compatible; ScoutJet; +http://www.scoutjet.com/)
+Mozilla/5.0 (compatible; seexie.com_bot/4.1; +http://www.seexie.com)
+Mozilla/5.0 (compatible; Seznam screenshot-generator 2.0; +http://fulltext.sblog.cz/screenshot/)
+Mozilla/5.0 (compatible; TopBlogsInfo/2.0; +topblogsinfo@gmail.com)
+Mozilla/5.0 (compatible; Yahoo! SearchMonkey 1.0; http://developer.yahoo.com/searchmonkey/useragent)
+Mozilla/5.0 (compatible;archive.org_bot/1.7.0; Archive-It; +http://www.archive-it.org)
+Mozilla/5.0 (compatible;picmole/1.0 +http://www.picmole.com)
+Mozilla/5.0 (X11; compatible; crawler@newstin.com; HTTPClient 3.1)
+Mozilla/4.0 (MobilePhone SCP-5500/US/1.0) NetFront/3.0 MMP/2.0 FAKE (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
+Nokia6681/1.0 (2.30.0) Series60/2.6 Profile/MIDP-2.0 Configuration/CLDC-1.1 (compatible; baiduspider; +http://www.baidu.com/search/spider.html)
+Nokia3650/1.0 SymbianOS/6.1 Series60/1.2 Profile/MIDP-1.0 Configuration/CLDC-1.0/ (compatible; YodaoBot-Mobile/1.0; http://www.youdao.com/help/webmaster/spider/; )
+NokiaN70/. FASTMobileCrawl/6.6 Profile/MIDP-2.0 Configuration/CLDC-1.1
+SAMSUNG-SGH-E250/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)
PingALink Monitoring Services 1.0 (http://www.pingalink.com)
IlTrovatore-Setaccio (+ ">http://www.iltrovatore.it)
Mercator-2.0
search.ch V1.4.2 (spiderman@search.ch;
WebFilter Robot 1.0
WWWeasel Robot v1.00 (http://wwweasel.de)
+Advista Crawler 2.02
+Yahoo Pipes 1.0
+DevCore Search Engine 0.0.4 http://devcore.eu.org/search/
+Firebat 2.9.1 (http://lms.virtual-presence.org)
+GiNDev/Nutch-0.9 (Germanistik im Netz; http://www.germanistik-im-netz.de/gin-www-search/gin-www-search-about.html; D dot Eichner at ub dot uni-frankfurt dot de)
+Nutch/Nutch-0.8.1 (Nutch; Nutch; Nutch)
+Iceweasel2.0.0.16/Nutch-1.0 (Webbrowser; http://iceweasel.com; info@iceweasel.com)
+nu_tch-princeton/Nu_tch-1.0-dev (princeton crawler for cass project; http://www.cs.princeton.edu/cass/; zhewang a_t cs ddot princeton dot edu)
+larbin_2.6.3 larbin2.6.3@unspecified.mail
2.0_AC-Plug - http://www.iOpus.com
Openfind data gatherer, Openbot/3.0+(robot-response@openfind.com.tw;+
MSRBOT (http://research.microsoft.com/research/sv/msrbot)
+MLBot (www.metadatalabs.com/mlbot)
ICCrawler - ICjobs (http://www.icjobs.de/bot.htm)
+ICC-Crawler/2.0 (Mozilla-compatible; ; http://kc.nict.go.jp/project1/crawl.html)
Baiduspider+(+http://www.baidu.com/search/spider.htm)
+BaiduImagespider+(+http://www.baidu.jp/spider/)
BaiDuSpider
+Sosospider+(+http://help.soso.com/webspider.htm)
+Sosoimagespider+(+http://help.soso.com/soso-image-spider.htm)
+Cityreview Robot (+http://www.cityreview.org/crawler/)
+Speedy Spider (http://www.entireweb.com/about/search_tech/speedy_spider/)
LinkWalker
+yacybot (amd64 Linux 2.6.28-15-generic; java 1.6.0_16; Europe/de) http://yacy.net/bot.html
+webcrawler (compatible; heritrix/1.14.3 ++http://www.onb.ac.at/about/webarchivierung.htm)
Internet Explorer 5.5
Mozilla/4.0 (compatible; B-l-i-t-z-B-O-T)
+LargeSmall Crawler (LargeSmall; http://onespot.com; info@onespot.com)
B l i t z B O T @ t r i c u s . n e t (Mozilla compatible)
sitecheck.internetseer.com (For more info see: ">http://sitecheck.internetseer.com)
http://www.almaden.ibm.com/cs/crawler [c01]
ia_archiver
+ia_archiver (+http://www.alexa.com/site/help/webmasters; crawler@alexa.com)
Nutch
NutchCVS
Mozilla