@ -38,13 +38,14 @@
} ;
w . apps = {
'1und1' : { cats : [ 6 ] , url : /\/shop\/catalog\/browse\?sessid\=/ , implies : [ 'PHP' ] } ,
'1C-Bitrix' : { cats : [ 1 ] , headers : { 'X-Powered-CMS' : /Bitrix Site Manager/ , 'Set-Cookie' : /BITRIX_/i } , html : /<link[^>]+components\/bitrix|(src|href)=("|')\/bitrix\/(js|templates)/i , script : /1c\-bitrix/i , implies : [ 'PHP' ] } ,
'1und1' : { cats : [ 6 ] , url : /\/shop\/catalog\/browse\?sessid\=/ , implies : [ 'PHP' ] } ,
'2z Project' : { cats : [ 1 ] , meta : { 'generator' : /2z project/i } } ,
'AddThis' : { cats : [ 5 ] , script : /addthis\.com\/js/ , env : /^addthis$/ } ,
'Adobe CQ5' : { cats : [ 1 ] , url : /\/etc\/designs\//i , html : /<div class="[^"]*parbase/ , implies : [ 'Java' ] } ,
'Adobe GoLive' : { cats : [ 20 ] , meta : { 'generator' : /Adobe GoLive/i } } ,
'Advanced Web Stats' : { cats : [ 10 ] , html : /aws.src = [^<]+caphyon\-analytics/i , implies : [ 'Java' ] } ,
'Alloy' : { cats : [ 12 ] , env : /^AUI$/ } ,
'Ametys' : { cats : [ 1 ] , meta : { 'generator' : /(Ametys|Anyware Technologies)/i } , script : /STools.js/ , implies : [ 'Java' ] } ,
'Amiro.CMS' : { cats : [ 1 ] , meta : { 'generator' : /Amiro/i } , html : /system_js\.php(\?|\-)script=/ , implies : [ 'PHP' ] } ,
'AOLserver' : { cats : [ 22 ] , headers : { 'Server' : /AOLserver/i } } ,
@ -55,14 +56,13 @@
'ATG Web Commerce' : { cats : [ 6 ] , headers : { 'X-ATG-Version' : /ATG/i } , html : /<[^>]+_DARGS/ } ,
'Atlassian Confluence' : { cats : [ 8 ] , html : /Powered by <a href=.http:\/\/www\.atlassian\.com\/software\/confluence/i , implies : [ 'Java' ] } ,
'Atlassian Jira' : { cats : [ 13 ] , env : /^jira$/i , html : /Powered by <a href=.http:\/\/www\.atlassian\.com\/software\/jira/i , implies : [ 'Java' ] } ,
'Alloy' : { cats : [ 12 ] , env : /^AUI$/ } ,
'AWStats' : { cats : [ 10 ] , meta : { 'generator' : /AWStats/i } , implies : [ 'Perl' ] } ,
'Banshee' : { cats : [ 1 , 18 ] , html : /Built upon the <a href=("|')[^>]+banshee-php\.org/i , implies : [ 'PHP' ] } ,
'Backbone.js' : { cats : [ 12 ] , script : /backbone.*\.js/ , env : /^Backbone$/ , implies : [ 'Underscore.js' ] } ,
'Banshee' : { cats : [ 1 , 18 ] , html : /Built upon the <a href=("|')[^>]+banshee-php\.org/i , implies : [ 'PHP' ] } ,
'BIGACE' : { cats : [ 1 ] , meta : { 'generator' : /BIGACE/ } , html : /Powered by <a href=("|')[^>]+BIGACE|<!--\s+Site is running BIGACE/i , implies : [ 'PHP' ] } ,
'BigDump' : { cats : [ 3 ] , html : /<!-- <h1>BigDump: Staggered MySQL Dump Importer/ , implies : [ 'PHP' ] } ,
'Bigware' : { cats : [ 6 ] , html : /Diese <a href=("|')http:\/\/www\.bigware\.de("|')|<center>[^<]+<a href="http:\/\/www\.bigware\.de[^"]*" target="_blank">\s*<u>Shopsoftware\s*<\/u>\s*<\/a>[^<]+<\/center>/i , url : /(\?|&)bigWAdminID=[a-z0-9]+(&|$)/i , headers : { 'Set-Cookie' : /bigwareCsid|bigWAdminID/ } , implies : [ 'PHP' ] } ,
' b lip.tv': { cats : [ 14 ] , html : /<(param|embed)[^>]+blip\.tv\/play/i } ,
' B lip.tv': { cats : [ 14 ] , html : /<(param|embed)[^>]+blip\.tv\/play/i } ,
'Blogger' : { cats : [ 11 ] , meta : { 'generator' : /blogger/i } , url : /^(www.)?.+\.blogspot\.com/i } ,
'BrowserCMS' : { cats : [ 1 ] , meta : { 'generator' : /BrowserCMS/i } , implies : [ 'Ruby' ] } ,
'Bugzilla' : { cats : [ 13 ] , html : /href="enter_bug\.cgi">/ , implies : [ 'Perl' ] } ,
@ -73,8 +73,8 @@
'CentOS' : { cats : [ 28 ] , headers : { 'Server' : /CentOS/i , 'X-Powered-By' : /CentOS/i } } ,
'CFML' : { cats : [ 27 ] } ,
'Chameleon' : { cats : [ 1 ] , meta : { 'generator' : /chameleon\-cms/i } , implies : [ 'Apache' , 'PHP' ] } ,
'Chartbeat' : { cats : [ 10 ] , html : /function loadChartbeat\(\) {/i } ,
'Chamilo' : { cats : [ 21 ] , meta : { 'generator' : /Chamilo/i } , headers : { 'X-Powered-By' : /Chamilo/i } , implies : [ 'PHP' ] } ,
'Chartbeat' : { cats : [ 10 ] , html : /function loadChartbeat\(\) {/i } ,
'Cherokee' : { cats : [ 22 ] , headers : { 'Server' : /Cherokee/i } } ,
'CKEditor' : { cats : [ 24 ] , env : /^CKEDITOR$/i , implies : [ 'PHP' ] } ,
'ClickHeat' : { cats : [ 10 ] , script : /clickheat.*\.js/i , env : /^clickHeatBrowser$/ , implies : [ 'PHP' ] } ,
@ -99,22 +99,22 @@
'Crazy Egg' : { cats : [ 10 ] , env : /CE2/ , script : /cetrk\.com\/pages\/scripts\/[0-9]+\/[0-9]+\.js/ } ,
'CS Cart' : { cats : [ 6 ] , env : /fn_compare_strings/i , html : / Powered by (<a href=.http:\/\/www\.cs\-cart\.com|CS\-Cart)/i , implies : [ 'PHP' ] } ,
'CubeCart' : { cats : [ 6 ] , html : /(Powered by <a href=.http:\/\/www\.cubecart\.com|<p[^>]+>Powered by CubeCart)/i , meta : { 'generator' : /cubecart/i } , implies : [ 'PHP' ] } ,
'cufon' : { cats : [ 17 ] , script : /cufon\-yui\.js/ , env : /^Cufon$/ } ,
//'dashCommerce': { cats: [ 6 ], implies: [ 'Microsoft ASP.NET', 'IIS', 'Windows Server' ] },
'Cufon' : { cats : [ 17 ] , script : /cufon\-yui\.js/ , env : /^Cufon$/ } ,
'd3' : { cats : [ 25 ] , script : /d3(\.v2)(\.min)?\.js/ } ,
'Dancer' : { cats : [ 18 ] , headers : { 'X-Powered-By' : /Perl Dancer/ , 'Server' : /Perl Dancer/ } , implies : [ 'Perl' ] } ,
'Danneo CMS' : { cats : [ 1 ] , headers : { 'X-Powered-By' : /CMS Danneo.*/i } , meta : { 'generator' : /Danneo/i } , implies : [ 'Apache' , 'PHP' ] } ,
'DataLife Engine' : { cats : [ 1 ] , env : /dle_root/i , meta : { 'generator' : /DataLife Engine/i } } ,
//'dashCommerce': { cats: [ 6 ], implies: [ 'Microsoft ASP.NET', 'IIS', 'Windows Server' ] },
'DataLife Engine' : { cats : [ 1 ] , env : /dle_root/i , meta : { 'generator' : /DataLife Engine/i } , implies : [ 'PHP' , 'Apache' ] } ,
'David Webbox' : { cats : [ 22 ] , headers : { 'Server' : /David-WebBox/i } } ,
'Debian' : { cats : [ 28 ] , headers : { 'Server' : /Debian/i , 'X-Powered-By' : /(Debian|dotdeb|etch|lenny|squeeze|wheezy)/i } } ,
'DedeCMS' : { cats : [ 1 ] , env : /^Dede/ , script : /dedeajax/ , implies : [ 'PHP' ] } ,
'Demandware' : { cats : [ 6 ] , headers : { 'Server' : /Demandware eCommerce Server/i } , html : /<[^>]+demandware.edgesuite/ , env : /^dwAnalytics/ } ,
'DHTMLX' : { cats : [ 12 ] , script : /dhtmlxcommon\.js/ } ,
'DirectAdmin' : { cats : [ 9 ] , html : /<a[^>]+>DirectAdmin<\/a> Web Control Panel/i , implies : [ 'PHP' , 'Apache' , 'phpMyAdmin' , 'FrontPage' ] } ,
'DirectAdmin' : { cats : [ 9 ] , html : /<a[^>]+>DirectAdmin<\/a> Web Control Panel/i , implies : [ 'PHP' , 'Apache' ] } ,
'Disqus' : { cats : [ 15 ] , script : /disqus_url/ , html : /<div[^>]+id=("|')disqus_thread("|')/ , env : /^DISQUS/i } ,
'Django' : { cats : [ 18 ] , html : /powered by <a[^>]+>Django/i , implies : [ 'Python' ] } ,
'Django CMS' : { cats : [ 1 ] , script : /media\/cms\/js\/csrf\.js/ , headers : { 'Set-Cookie' : /django/ } , implies : [ 'Django' ] } ,
' d ojo': { cats : [ 12 ] , script : /dojo(\.xd)?\.js/ , env : /^dojo$/ } ,
' D ojo': { cats : [ 12 ] , script : /dojo(\.xd)?\.js/ , env : /^dojo$/ } ,
'Dokeos' : { cats : [ 21 ] , meta : { 'generator' : /Dokeos/i } , html : /Portal <a[^>]+>Dokeos|@import "[^"]+dokeos_blue/i , headers : { 'X-Powered-By' : /Dokeos/ } , implies : [ 'PHP' , 'xajax' , 'jQuery' , 'CKEditor' ] } ,
'DokuWiki' : { cats : [ 8 ] , meta : { 'generator' : /DokuWiki/i } , implies : [ 'PHP' ] } ,
'DotNetNuke' : { cats : [ 1 ] , meta : { 'generator' : /DotNetNuke/i } , html : /(<!\-\- by DotNetNuke Corporation|<link[^>]+\/portals\/_default\/[^>]+\.css)/i , env : /^(DDN|DotNetNuke)/i , implies : [ 'Microsoft ASP.NET' ] } ,
@ -127,27 +127,26 @@
//'Ecodoo': { cats: [ 6 ], script: /addons\/lytebox\/lytebox\.js/ },
'EPiServer' : { cats : [ 1 ] , meta : { 'generator' : /EPiServer/i } , implies : [ 'Microsoft ASP.NET' , 'IIS' , 'Windows Server' ] } ,
'Exhibit' : { cats : [ 25 ] , script : /exhibit.*\.js/ , env : /^Exhibit$/ } ,
'ExtJS' : { cats : [ 12 ] , script : /ext\-base\.js/ , env : /^Ext$/ } ,
'ExpressionEngine' : { cats : [ 1 ] , headers : { 'Set-Cookie' : /(exp_last_activity|exp_tracker)/ } , implies : [ 'PHP' ] } ,
'ExtJS' : { cats : [ 12 ] , script : /ext\-base\.js/ , env : /^Ext$/ } ,
'eZ Publish' : { cats : [ 1 , 6 ] , meta : { 'generator' : /eZ Publish/i } , implies : [ 'PHP' ] } ,
'FAST Search for SharePoint' : { cats : [ 29 ] , url : /Pages\/SearchResults\.aspx\?k\=/ , implies : [ 'Microsoft SharePoint' , 'Microsoft ASP.NET' ] } ,
'FAST ESP' : { cats : [ 29 ] , html : /fastsearch|searchProfile\=|searchCategory\=/i , url : /esppublished|searchProfile\=|searchCategory\=/i } ,
'Fact Finder' : { cats : [ 29 ] , html : /\/images\/fact-finder\.gif|ViewParametricSearch|factfinder|Suggest\.ff/i , url : /ViewParametricSearch|factfinder|ffsuggest/i } ,
'FAST ESP' : { cats : [ 29 ] , html : /fastsearch|searchProfile\=|searchCategory\=/i , url : /esppublished|searchProfile\=|searchCategory\=/i } ,
'FAST Search for SharePoint' : { cats : [ 29 ] , url : /Pages\/SearchResults\.aspx\?k\=/ , implies : [ 'Microsoft SharePoint' , 'Microsoft ASP.NET' ] } ,
'FlexCMP' : { cats : [ 1 ] , meta : { 'generator' : /FlexCMP/ } , headers : { 'X-Powered-By' : /FlexCMP/ } } ,
'FluxBB' : { cats : [ 2 ] , html : /Powered by (<strong>)?<a href=("|')[^>]+fluxbb/i } ,
'Flyspray' : { cats : [ 13 ] , html : /(<a[^>]+>Powered by Flyspray|<map id=("|')projectsearchform|Powered by <a href=("|')http:\/\/flyspray\.org\/("|'))/ } ,
'FreeBSD' : { cats : [ 28 ] , headers : { 'Server' : /FreeBSD/i } } ,
'FWP' : { cats : [ 6 ] , meta : { 'generator' : /FWP Shop/ } } ,
'FrontPage' : { cats : [ 20 ] , meta : { 'generator' : /Microsoft FrontPage/ } , html : /<html[^>]+urn:schemas\-microsoft\-com:office:office/i } ,
'FWP' : { cats : [ 6 ] , meta : { 'generator' : /FWP Shop/ } } ,
'Gallery' : { cats : [ 7 ] , env : /galleryAuthToken/ , html : /<div id="gsNavBar" class="gcBorder1">/ } ,
'Gambio' : { cats : [ 6 ] , html : / brought to you by XT-Commerce|href=""templates\/gambio\/| content\.php\?coID=\d|<!-- gambio eof -->/, implies : [ 'PHP' ] } ,
'Gambio' : { cats : [ 6 ] , html : / <link+.*[^>] href="templates\/gambio\/|<a+.*[^>] content\.php\?coID=\d|<!-- gambio eof -->/, implies : [ 'PHP' ] } ,
'Gauges' : { cats : [ 10 ] , html : /t\.src = '\/\/secure\.gaug\.es\/track\.js/ , env : /^_gauges$/ } ,
'Gentoo' : { cats : [ 28 ] , headers : { 'X-Powered-By' : /-?gentoo/ } } ,
'Get Satisfaction' : { cats : [ 13 ] , html : /var feedback_widget = new GSFN\.feedback_widget\(feedback_widget_options\)/ } ,
'Google Analytics' : { cats : [ 10 ] , script : /(\.google\-analytics\.com\/ga\.js|google-analytics\.com\/urchin\.js)/ , env : /^gaGlobal$/ } ,
'Google App Engine' : { cats : [ 22 ] , headers : { 'Server' : /Google Frontend/i } } ,
'Google Font API' : { cats : [ 17 ] , script : /googleapis.com\/.+webfont/ , html : /<link[^>]* href=("|')http:\/\/fonts\.googleapis\.com/ , env : /^WebFont/ } ,
'Google Friend Connect' : { cats : [ 5 ] , script : /google.com\/friendconnect/ } ,
'Google Maps' : { cats : [ 5 ] , script : /(maps\.google\.com\/maps\?file=api|maps\.google\.com\/maps\/api\/staticmap)/ } ,
'Google Sites' : { cats : [ 1 ] , url : /sites.google.com/ } ,
'GoStats' : { cats : [ 10 ] , env : /^_go(stats|_track)/i } ,
@ -174,10 +173,10 @@
'Joomla' : { cats : [ 1 ] , meta : { 'generator' : /Joomla/i } , html : /(<!\-\- JoomlaWorks "K2"|<[^>]+(feed|components)\/com_)/i , headers : { 'X-Content-Encoded-By' : /Joomla/ } , env : /^(jcomments)$/i } ,
'jqPlot' : { cats : [ 25 ] , script : /jqplot.*\.js/ , env : /^jQuery.jqplot$/ } ,
'jQTouch' : { cats : [ 26 ] , script : /jqtouch.*\.js/i , env : /^jQT$/ } ,
'jQuery UI' : { cats : [ 12 ] , script : /jquery\-ui.*\.js/ , implies : [ 'jQuery' ] } ,
'jQuery' : { cats : [ 12 ] , script : /jquery.*.js/ , env : /^jQuery$/ } ,
'jQuery Mobile' : { cats : [ 26 ] , script : /jquery\.mobile.*\.js/i } ,
'jQuery Sparklines' : { cats : [ 25 ] , script : /jquery\.sparkline.*\.js/i } ,
'jQuery UI' : { cats : [ 12 ] , script : /jquery\-ui.*\.js/ , implies : [ 'jQuery' ] } ,
'JS Charts' : { cats : [ 25 ] , script : /jscharts.*\.js/i , env : /^JSChart$/ } ,
'JTL Shop' : { cats : [ 6 ] , html : /(<input[^>]+name=('|")JTLSHOP|<a href=('|")jtl\.php)/i } ,
'K2' : { cats : [ 19 ] , html : /<!\-\- JoomlaWorks "K2"/ , env : /^K2RatingURL$/ , implies : [ 'Joomla' ] } ,
@ -188,9 +187,9 @@
'Kolibri CMS' : { cats : [ 1 ] , meta : { 'generator' : /Kolibri/i } } ,
'Koobi' : { cats : [ 1 ] , meta : { 'generator' : /Koobi/i } } ,
'LEPTON' : { cats : [ 1 ] , meta : { 'generator' : /LEPTON/i } , implies : [ 'PHP' ] } ,
'Liferay' : { cats : [ 1 ] , env : /^Liferay$/ , headers : { 'Liferay-Portal' : /.*/i } } ,
'lighttpd' : { cats : [ 22 ] , headers : { 'Server' : /lighttpd/i } } ,
'LiveJournal' : { cats : [ 11 ] , url : /^(www.)?.+\.livejournal\.com/i } ,
'Liferay' : { cats : [ 1 ] , env : /^Liferay$/ , headers : { 'Liferay-Portal' : /.*/i } } ,
'Lotus Domino' : { cats : [ 22 ] , headers : { 'Server' : /Lotus\-Domino/i } } ,
'Magento' : { cats : [ 6 ] , script : /\/(js\/mage|skin\/frontend\/(default|enterprise))\// , env : /^(Mage|VarienForm)$/ , implies : [ 'PHP ' ] } ,
'Mambo' : { cats : [ 1 ] , meta : { 'generator' : /Mambo/i } } ,
@ -241,19 +240,19 @@
'Percussion' : { cats : [ 1 ] , meta : { 'generator' : /(Percussion|Rhythmyx)/i } , html : /<[^>]+class="perc-region/ } ,
'Perl' : { cats : [ 27 ] } ,
'PHP' : { cats : [ 27 ] , headers : { 'Server' : /php/i , 'X-Powered-By' : /php/i , 'Set-Cookie' : /PHPSESSID/ } , url : /\.php$/ } ,
'Phpcms' : { cats : [ 1 ] , env : /^phpcms/ } ,
'PHP-Fusion' : { cats : [ 1 ] , html : /Powered by <a href=("|')[^>]+php-fusion/i } ,
'PHP-Nuke' : { cats : [ 2 ] , meta : { 'generator' : /PHP-Nuke/i } , html : /<[^>]+Powered by PHP\-Nuke/i } ,
'phpBB' : { cats : [ 2 ] , meta : { 'copyright' : /phpBB Group/ } , html : /(Powered by <a[^>]+phpbb|<a[^>]+phpbb[^>]+class=.copyright|\tphpBB style name|<[^>]+styles\/(sub|pro)silver\/theme|<img[^>]+i_icon_mini|<table class="forumline)/i , env : /^(style_cookie_settings|phpbb_)/ , headers : { 'Set-Cookie' : /^phpbb/ } , implies : [ 'PHP' ] } ,
'phpCMS' : { cats : [ 1 ] , env : /^phpcms/ } ,
'phpDocumentor' : { cats : [ 4 ] , html : /<!-- Generated by phpDocumentor/ , implies : [ 'PHP' ] } ,
'PHP-Fusion' : { cats : [ 1 ] , html : /Powered by <a href=("|')[^>]+php-fusion/i } ,
'phpMyAdmin' : { cats : [ 3 ] , html : /(var pma_absolute_uri = '|PMA_sendHeaderLocation\(|<title>phpMyAdmin<\/title>)/i , implies : [ 'PHP' ] } ,
'PHP-Nuke' : { cats : [ 2 ] , meta : { 'generator' : /PHP-Nuke/i } , html : /<[^>]+Powered by PHP\-Nuke/i } ,
'phpPgAdmin' : { cats : [ 3 ] , html : /(<title>phpPgAdmin<\/title>|<span class=("|')appname("|')>phpPgAdmin)/i } ,
'Piwik' : { cats : [ 10 ] , html : /var piwikTracker = Piwik\.getTracker\(/i , env : /^Piwik$/i } ,
'Plentymarkets' : { cats : [ 6 ] , meta : { 'generator' : /www\.plentyMarkets\./i } } ,
'Plesk' : { cats : [ 9 ] , headers : { 'X-Powered-By-Plesk' : /Plesk/i , 'X-Powered-By' : /PleskLin/i } , script : /common\.js\?plesk/i } ,
'Plone' : { cats : [ 1 ] , meta : { 'generator' : /Plone/i } , implies : [ 'Python' ] } ,
'Plura' : { cats : [ 19 ] , html : /<iframe src="http:\/\/pluraserver\.com/ } ,
' p osterous': { cats : [ 1 , 11 ] , html : /<div class=("|')posterous/i , env : /^Posterous/i } ,
' P osterous': { cats : [ 1 , 11 ] , html : /<div class=("|')posterous/i , env : /^Posterous/i } ,
'Powergap' : { cats : [ 6 ] , html : /(s\d\d)\.php\?shopid=\1/ } ,
'Prestashop' : { cats : [ 6 ] , meta : { 'generator' : /PrestaShop/i } , html : /Powered by <a href=("|')[^>]+PrestaShop/i } ,
'Prototype' : { cats : [ 12 ] , script : /(prototype|protoaculous)\.js/ , env : /^Prototype$/ } ,
@ -262,15 +261,15 @@
'Python' : { cats : [ 27 ] } ,
'Quantcast' : { cats : [ 10 ] , script : /edge\.quantserve\.com\/quant\.js/ , env : /^quantserve$/ } ,
'Quick.Cart' : { cats : [ 6 ] , html : /<a href="[^>]+opensolution\.org\/">Powered by/i } ,
'ReallyCMS' : { cats : [ 1 ] , meta : { 'generator' : /ReallyCMS/ } } ,
'Red Hat' : { cats : [ 28 ] , headers : { 'Server' : /Red Hat/i , 'X-Powered-By' : /Red Hat/i } } ,
'Raphael' : { cats : [ 25 ] , script : /raphael.*\.js/ , env : /^Raphael$/ } ,
'ReallyCMS' : { cats : [ 1 ] , meta : { 'generator' : /ReallyCMS/ } } ,
'reCAPTCHA' : { cats : [ 16 ] , script : /(api\-secure\.recaptcha\.net|recaptcha_ajax\.js)/ , html : /<div[^>]+id=("|')recaptcha_image/ , env : /^Recaptcha$/ } ,
'Red Hat' : { cats : [ 28 ] , headers : { 'Server' : /Red Hat/i , 'X-Powered-By' : /Red Hat/i } } ,
'Reddit' : { cats : [ 2 ] , html : /(<script[^>]+>var reddit = {|<a[^>]+Powered by Reddit|powered by <a[^>]+>reddit<)/i , url : /^(www\.)?reddit\.com/ , env : /^reddit$/ , implies : [ 'Python' ] } ,
'Redmine' : { cats : [ 13 ] , meta : { 'description' : /Redmine/i } , html : /Powered by <a href=("|')[^>]+Redmine/i , implies : [ 'Ruby' ] } ,
'Reinvigorate' : { cats : [ 10 ] , html : /reinvigorate\.track\("/ } ,
'RequireJS' : { cats : [ 12 ] , script : /require.*\.js/ , env : /^requirejs$/ } ,
'Ruby' : { cats : [ 27 ] , headers : { 'Server' : /(Mongrel|WEBrick|Ruby|mod_rails|mod_rack|Phusion.Passenger)/i , 'X-Powered-By' : /(mod_rails|mod_rack|Phusion.Passenger)/i } } ,
'Ruby' : { cats : [ 27 ] , headers : { 'Server' : /(Mongrel|WEBrick|Ruby|mod_rails|mod_rack|Phusion.Passenger)/i , 'X-Powered-By' : /(mod_rails|mod_rack|Phusion.Passenger)/i } , meta : { 'authenticity_token' : /csrf-param/i } } ,
'S.Builder' : { cats : [ 1 ] , meta : { 'generator' : /S\.Builder/i } } ,
's9y' : { cats : [ 1 ] , meta : { 'generator' : /Serendipity/i , 'Powered-By' : /Serendipity/i } } ,
'script.aculo.us' : { cats : [ 12 ] , script : /(scriptaculous|protoaculous)\.js/ , env : /^Scriptaculous$/ } ,
@ -330,28 +329,28 @@
'VP-ASP' : { cats : [ 6 ] , script : /vs350\.js/ , html : /<a[^>]+>Powered By VP\-ASP Shopping Cart<\/a>/ , implies : [ 'Microsoft ASP.NET' ] } ,
'W3Counter' : { cats : [ 10 ] , script : /w3counter\.com\/tracker\.js/ } ,
'Web Optimizer' : { cats : [ 10 ] , html : /<title [^>]*lang=("|')wo("|')>/ } ,
'Websale' : { cats : [ 6 ] , url : /\/websale7\// } ,
'webEdition' : { cats : [ 1 ] , meta : { 'generator' : /webEdition/i , 'DC.title' : /webEdition/i } } ,
'WebGUI' : { cats : [ 1 ] , meta : { 'generator' : /WebGUI/i } } ,
'WebPublisher' : { cats : [ 1 ] , meta : { 'generator' : /WEB\|Publisher/i } } ,
'Websale' : { cats : [ 6 ] , url : /\/websale7\// } ,
'WebsiteBaker' : { cats : [ 1 ] , meta : { 'generator' : /WebsiteBaker/i } } ,
'Webtrekk' : { cats : [ 10 ] , html : /var webtrekk = new Object/ } ,
'Webtrends' : { cats : [ 10 ] , html : /<img[^>]+id=("|')DCSIMG("|')[^>]+webtrends/i , env : /^(WTOptimize|WebTrends)/i } ,
'Weebly' : { cats : [ 1 ] , html : /<[^>]+class=("|')weebly/i } ,
'WikkaWiki' : { cats : [ 8 ] , meta : { 'generator' : /WikkaWiki/ } , html : /Powered by <a href=("|')[^>]+WikkaWiki/i } ,
'Windows Server' : { cats : [ 28 ] , headers : { 'Server' : /Win32/i } } ,
' w ink': { cats : [ 26 , 12 ] , script : /(\_base\/js\/base|wink).*\.js/i , env : /^wink$/ } ,
' W ink': { cats : [ 26 , 12 ] , script : /(\_base\/js\/base|wink).*\.js/i , env : /^wink$/ } ,
'Wolf CMS' : { cats : [ 1 ] , html : /<a href=("|')[^>]+wolfcms.org.+Wolf CMS.+inside/i } ,
'Woopra' : { cats : [ 10 ] , script : /static\.woopra\.com/ } ,
'WordPress' : { cats : [ 1 , 11 ] , meta : { 'generator' : /WordPress/i } , html : /<link rel=("|')stylesheet("|') [^>]+wp-content/i , env : /^wp_username$/ , implies : [ 'PHP' ] } ,
' x ajax': { cats : [ 12 ] , script : /xajax_core.*\.js/i } ,
' X ajax': { cats : [ 12 ] , script : /xajax_core.*\.js/i } ,
'Xanario' : { cats : [ 6 ] , meta : { 'generator' : /xanario shopsoftware/i } } ,
'XenForo' : { cats : [ 2 ] , html : /(jQuery\.extend\(true, XenForo|Forum software by XenForo™|<!\-\-XF:branding)/ } ,
'XiTi' : { cats : [ 10 ] , html : /<[^>]+src=("|')[^>]+xiti.com\/hit.xiti/i , env : /^Xt_/ } ,
'XMB' : { cats : [ 2 ] , html : /<!-- Powered by XMB/i } ,
'xui' : { cats : [ 26 , 12 ] , script : /[^a-zA-Z]xui.*\.js/i , env : /^xui$/ } ,
'XOOPS' : { cats : [ 1 ] , meta : { 'generator' : /XOOPS/i } } ,
'xtCommerce' : { cats : [ 6 ] , meta : { 'generator' : /xt:Commerce/ } , html : /<div class=("|')copyright("|')>.+<a[^>]+>xt:Commerce/i } ,
'xui' : { cats : [ 26 , 12 ] , script : /[^a-zA-Z]xui.*\.js/i , env : /^xui$/ } ,
'YaBB' : { cats : [ 2 ] , html : /Powered by <a href=("|')[^>]+yabbforum/i } ,
'Yahoo! Web Analytics' : { cats : [ 10 ] , script : /d\.yimg\.com\/mi\/ywa\.js/ } ,
'Yandex.Metrika' : { cats : [ 10 ] , script : /mc\.yandex\.ru\/metrika\/watch\.js/ } ,