├── tanjiti.json ├── README.md ├── FingerPrint.pl └── apps.json /tanjiti.json: -------------------------------------------------------------------------------- 1 | { 2 | "categories": { 3 | "1": "cms", 4 | "2": "message-boards", 5 | "3": "database-managers", 6 | "4": "documentation-tools", 7 | "5": "widgets", 8 | "6": "ecommerce", 9 | "7": "photo-galleries", 10 | "8": "wikis", 11 | "9": "hosting-panels", 12 | "10": "analytics", 13 | "11": "blogs", 14 | "12": "javascript-frameworks", 15 | "13": "issue-trackers", 16 | "14": "video-players", 17 | "15": "comment-systems", 18 | "16": "captchas", 19 | "17": "font-scripts", 20 | "18": "web-frameworks", 21 | "19": "miscellaneous", 22 | "20": "editors", 23 | "21": "lms", 24 | "22": "web-servers", 25 | "23": "cache-tools", 26 | "24": "rich-text-editors", 27 | "25": "javascript-graphics", 28 | "26": "mobile-frameworks", 29 | "27": "programming-languages", 30 | "28": "operating-systems", 31 | "29": "search-engines", 32 | "30": "web-mail", 33 | "31": "cdn", 34 | "32": "marketing-automation", 35 | "33": "web-server-extensions", 36 | "34": "databases", 37 | "35": "maps", 38 | "36": "advertising-networks", 39 | "37": "network-devices", 40 | "38": "media-servers", 41 | "39": "webcams", 42 | "40": "printers", 43 | "41": "payment-processors", 44 | "42": "tag-managers", 45 | "43": "paywalls" 46 | }, 47 | "apps": { 48 | "Discuz!":{ 49 | "website": "www.discuz.net/forum.php", 50 | "cats": [ 1 ], 51 | "meta": { "generator": "Discuz"}, 52 | "headers": {"Set-Cookie": "_lastact.*_sid|_sid.*_lastact|_sid.*smile|smile.*_sid"}, 53 | "url": "/uc_server[/$]|uc_client[/$]", 54 | "html": "Powered by (?:Discuz!||PMA_sendHeaderLocation\\(|]*href=\"[^\"]*phpmyadmin\\.css\\.php)\\;version:\\1", 61 | "env": "^pma_absolute_uri$", 62 | "implies": [ "PHP", "MySQL" ] 63 | }, 64 | 65 | "PHP": { 66 | "website": "php.net", 67 | "cats": [ 27 ], 68 | "headers": { "Server": "php/?([\\d.]+)?\\;confidence:40\\;version:\\1", "X-Powered-By": "php/?([\\d.]+)?\\;confidence:40\\;version:\\1", "Set-Cookie": "PHPSESSID" }, 69 | "url": "\\.php(?:$|\\?)" 70 | } 71 | 72 | } 73 | } 74 | 75 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | FingerPrint 2 | =========== 3 | 4 | web应用指纹识别 5 | 6 | 使用WWW::Wappalyzer进行的指纹识别 7 | 8 | 感谢https://github.com/ElbertF/Wappalyzer 9 | 10 | 11 | 运行说明 12 | 13 | 1. 安装WWW::Wappalyzer模块 14 | 15 | cpan -i WWW::Wappalyzer 16 | 17 | 18 | 19 | 2. 运行 20 | 21 | (1) 识别单个url指纹 22 | 23 | perl FingerPrint.pl www.tanjiti.com 24 | 25 | 输出结果为 26 | 27 | { 28 | 29 | "www.tanjiti.com": { 30 | 31 | "web-servers": [ 32 | 33 | "Nginx" 34 | 35 | ], 36 | 37 | "cdn": [ 38 | 39 | "CloudFlare" 40 | 41 | ] 42 | 43 | } 44 | 45 | } 46 | 47 | 48 | 49 | 50 | (2) 使用自定义指纹文件进行识别 51 | 52 | perl FingerPrint.pl http://www.xxx.com tanjiti.json[rule_jsonfile] 53 | 54 | { 55 | 56 | "http://www.xxx.com": { 57 | 58 | "web-servers": [ 59 | 60 | "Nginx" 61 | 62 | ], 63 | 64 | "cms": [ 65 | 66 | "Discuz!" 67 | 68 | ] 69 | 70 | } 71 | 72 | } 73 | 74 | (3) 从文件读取url列表进行批量指纹识别,并将结果输出到文件中 75 | 76 | perl FingerPrint.pl url.txt tanjiti.json[rule_jsonfile] 77 | 78 | 结果输出到 url.txt__fingerprint 文件里 79 | 80 | cat url.txt__fingerprint 81 | 82 | { 83 | 84 | "http://www.xxxx.com": { 85 | 86 | "web-servers": [ 87 | 88 | "Nginx" 89 | 90 | ], 91 | 92 | "cms": [ 93 | 94 | "Discuz!" 95 | 96 | ] 97 | }, 98 | 99 | "http://www.yyyyy.net": { 100 | 101 | "cms": [ 102 | 103 | "Discuz!" 104 | 105 | ] 106 | 107 | }, 108 | 109 | "http://www.zzzz.cn": { 110 | 111 | "blogs": [ 112 | 113 | "WordPress" 114 | 115 | ], 116 | 117 | "web-servers": [ 118 | 119 | "Nginx" 120 | 121 | ], 122 | 123 | "cdn": [ 124 | 125 | "CloudFlare" 126 | 127 | ], 128 | 129 | "cms": [ 130 | 131 | "WordPress" 132 | 133 | ], 134 | 135 | "font-scripts": [ 136 | 137 | "Google Font API" 138 | 139 | ], 140 | 141 | "javascript-frameworks": [ 142 | 143 | "jQuery" 144 | 145 | ], 146 | 147 | "javascript-graphics": [ 148 | 149 | "Javascript Infovis Toolkit" 150 | 151 | ] 152 | 153 | } 154 | 155 | } 156 | 157 | -------------------------------------------------------------------------------- /FingerPrint.pl: -------------------------------------------------------------------------------- 1 | use strict; 2 | use warnings; 3 | use feature qw(say); 4 | use WWW::Wappalyzer qw(detect get_categories add_clues_file); 5 | use LWP::UserAgent; 6 | use Devel::Peek qw(Dump); 7 | my $uri = shift; 8 | my $rulefile = shift; 9 | my $debug = 0; 10 | die "Usage: perl $0 [rulefile]\n" unless defined($uri); 11 | 12 | 13 | chomp $uri; 14 | chomp $rulefile if $rulefile; 15 | 16 | ######################################################## 17 | # main progress 18 | ######################################################## 19 | if(-e $uri){ 20 | 21 | multiURL($uri,$rulefile); 22 | 23 | }else{ 24 | my $result = getFP($uri,$rulefile); 25 | say "{"; 26 | print $result; 27 | say "}"; 28 | 29 | } 30 | 31 | 32 | ########################################################### 33 | #--! multiURL: get multi url of url file finger print 34 | #--! parma: urlfile, rulefile 35 | #--! return: fingerprint result json file 36 | ########################################################## 37 | 38 | sub multiURL{ 39 | my ($file,$rulefile) = @_; 40 | 41 | die "$file not exists or 0-size \n" unless -e $file and -s $file; 42 | 43 | my $tmp_file = $file."_tmp"; 44 | #uniq and clear Blank lines 45 | `cat $file |sort|uniq|sort|grep -v "^\$">$tmp_file && mv $tmp_file $file `; 46 | die "uniq clear blank lines failed ! \n" if $? != 0; 47 | 48 | 49 | my $file_out = $uri."_fingerprint"; 50 | open my $IN, "<:encoding(UTF-8)", $file or die "cannot open $file for reading \n"; 51 | open my $OUT, ">:encoding(UTF-8)", $file_out or die "cannot open $file_out for writing \n"; 52 | 53 | my $line_number = `cat $file | wc -l`; 54 | die "get $file record number failed ! \n" if $? != 0; 55 | chomp $line_number; 56 | 57 | say $OUT "{"; 58 | my $index = 1; 59 | while(<$IN>){ 60 | 61 | last if $index > $line_number -1 ; 62 | chomp; 63 | my $result_per_url = getFP($_,$rulefile); 64 | 65 | chomp $result_per_url; 66 | $result_per_url .= ","; 67 | 68 | say $OUT $result_per_url; 69 | 70 | $index++; 71 | } 72 | 73 | my $last_host = `tail -1 $file`; 74 | chomp $last_host; 75 | my $result_per_url = getFP($last_host,$rulefile); 76 | print $OUT $result_per_url; 77 | 78 | say $OUT "}"; 79 | close $IN; 80 | close $OUT; 81 | 82 | } 83 | 84 | 85 | 86 | 87 | ########################################################### 88 | #--! sendHTTP: send http request and return response object 89 | #--! param: uri 90 | #--! return: response hash object 91 | ########################################################## 92 | sub sendHTTP{ 93 | my $uri = shift; 94 | chomp $uri; 95 | my $host = $1 if $uri =~ /(?:https?:\/\/)?([\w.-]+)/; 96 | 97 | my $browser = LWP::UserAgent->new(); 98 | my $UserAgent = "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0"; 99 | my $timeout = 180; 100 | my $redirect = 30; 101 | $browser->agent($UserAgent); 102 | $browser->timeout($timeout); 103 | $browser->ssl_opts(verify_hostname => 1); 104 | $browser->max_redirect($redirect); 105 | $browser->show_progress(1) if $debug == 1; 106 | $browser->default_header('Accept'=>'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'); 107 | $browser->default_header('Accept-Encoding'=>'gzip,deflate,sdch'); 108 | $browser->default_header('Connection' => 'keep-alive'); 109 | $browser->default_header('Host' => $host) if $host; 110 | 111 | $uri = 'http://'.$uri unless($uri =~ /https?:\/\/([^\/\\]+)/); 112 | 113 | my $response = $browser->get($uri); 114 | 115 | 116 | if($debug == 1){ 117 | say $response->request->as_string; 118 | say "\n"; 119 | say $response->headers_as_string; 120 | } 121 | return $response; 122 | } 123 | 124 | ############################################################ 125 | #--! getFP: get finger print result 126 | #--! param: url,rulefile 127 | #--! return: finger print json result 128 | ########################################################### 129 | sub getFP{ 130 | 131 | my ($url,$rule_file) = @_; 132 | my $response = sendHTTP($url); 133 | 134 | #add your new finger print rule json file 135 | add_clues_file($rulefile) if $rulefile and -e $rulefile; 136 | 137 | 138 | my %detected = detect( 139 | html => $response->decoded_content, 140 | headers => $response->headers, 141 | url => $uri, 142 | # cats => ["cms"], 143 | ); 144 | 145 | my $result = jsonOutput($url,\%detected); 146 | return $result; 147 | } 148 | 149 | ############################################################ 150 | #--! jsonOutput: output hash result in json format 151 | #--! param: uri, detected_ref 152 | #--! return: json_format string 153 | ############################################################ 154 | sub jsonOutput{ 155 | my ($uri,$detected_ref) = @_; 156 | my %detected = %$detected_ref; 157 | my $str_app_fp = qw(); 158 | $str_app_fp = "\t\"$uri\": {\n"; 159 | foreach (keys %detected){ 160 | my $tmp = $detected{$_}; 161 | my @details = @$tmp; 162 | $str_app_fp .= "\t\t\"$_\": [\n"; 163 | 164 | 165 | map {$str_app_fp .= "\t\t\t\"$_\",\n" } @details; 166 | 167 | chop $str_app_fp; 168 | chop $str_app_fp; 169 | $str_app_fp .= "\n\t\t],\n"; 170 | } 171 | 172 | if (scalar keys %detected > 0){ 173 | chop $str_app_fp; 174 | chop $str_app_fp; 175 | } 176 | 177 | 178 | $str_app_fp .= "\n\t}\n"; 179 | return $str_app_fp; 180 | 181 | } 182 | -------------------------------------------------------------------------------- /apps.json: -------------------------------------------------------------------------------- 1 | { 2 | "categories": { 3 | "1": "cms", 4 | "2": "message-boards", 5 | "3": "database-managers", 6 | "4": "documentation-tools", 7 | "5": "widgets", 8 | "6": "ecommerce", 9 | "7": "photo-galleries", 10 | "8": "wikis", 11 | "9": "hosting-panels", 12 | "10": "analytics", 13 | "11": "blogs", 14 | "12": "javascript-frameworks", 15 | "13": "issue-trackers", 16 | "14": "video-players", 17 | "15": "comment-systems", 18 | "16": "captchas", 19 | "17": "font-scripts", 20 | "18": "web-frameworks", 21 | "19": "miscellaneous", 22 | "20": "editors", 23 | "21": "lms", 24 | "22": "web-servers", 25 | "23": "cache-tools", 26 | "24": "rich-text-editors", 27 | "25": "javascript-graphics", 28 | "26": "mobile-frameworks", 29 | "27": "programming-languages", 30 | "28": "operating-systems", 31 | "29": "search-engines", 32 | "30": "web-mail", 33 | "31": "cdn", 34 | "32": "marketing-automation", 35 | "33": "web-server-extensions", 36 | "34": "databases", 37 | "35": "maps", 38 | "36": "advertising-networks", 39 | "37": "network-devices", 40 | "38": "media-servers", 41 | "39": "webcams", 42 | "40": "printers", 43 | "41": "payment-processors", 44 | "42": "tag-managers", 45 | "43": "paywalls" 46 | }, 47 | "apps": { 48 | "1C-Bitrix": { 49 | "website": "www.1c-bitrix.ru", 50 | "cats": [ 1 ], 51 | "headers": { "X-Powered-CMS": "Bitrix Site Manager", "Set-Cookie": "BITRIX_" }, 52 | "html": "(?:<link[^>]+components/bitrix|(?:src|href)=\"/bitrix/(?:js|templates))", 53 | "script": "1c-bitrix", 54 | "implies": "PHP" 55 | }, 56 | "1und1": { 57 | "website": "1und1.de", 58 | "cats": [ 6 ], 59 | "url": "/shop/catalog/browse\\?sessid=", 60 | "implies": "PHP" 61 | }, 62 | "2z Project": { 63 | "website": "2zproject-cms.ru", 64 | "cats": [ 1 ], 65 | "meta": { "generator": "2z project ([\\d.]+)\\;version:\\1" } 66 | }, 67 | "3dCart": { 68 | "website": "www.3dcart.com", 69 | "cats": [ 1, 6 ], 70 | "headers": { "X-Powered-By": "3DCART" }, 71 | "script": "(?:twlh(?:track)?\\.asp|3d_upsell\\.js)" 72 | }, 73 | "3DM": { 74 | "website": "www.3ware.com", 75 | "cats": [ 19 ], 76 | "html": "<title>3ware 3DM([\\d\\.]+)?\\;version:\\1", 77 | "implies": "3ware" 78 | }, 79 | "3ware": { 80 | "website": "www.3ware.com", 81 | "cats": [ 22 ], 82 | "headers": { "Server": "3ware\\/?([\\d\\.]+)?\\;version:\\1" } 83 | }, 84 | "Accessible Portal": { 85 | "website": "www.accessibleportal.com", 86 | "cats": [ 1 ], 87 | "meta": { "generator": "Accessible Portal" }, 88 | "implies": "PHP" 89 | }, 90 | "AddThis": { 91 | "website": "www.addthis.com", 92 | "cats": [ 5 ], 93 | "script": "addthis\\.com/js/(\\d+)?\\;version:\\1", 94 | "env": "^addthis" 95 | }, 96 | "AdInfinity": { 97 | "website": "adinfinity.com.au", 98 | "cats": [ 36 ], 99 | "script": [ "adinfinity\\.com\\.au" ] 100 | }, 101 | "Adobe ColdFusion": { 102 | "website": "adobe.com/products/coldfusion-family.html", 103 | "cats": [ 18 ], 104 | "url": "\\.cfm(?:$|\\?)", 105 | "html": "<!-- START headerTags\\.cfm", 106 | "script": "/cfajax/", 107 | "env": "^_cfEmails$", 108 | "implies": "CFML" 109 | }, 110 | "Adobe CQ5": { 111 | "website": "adobe.com/products/cq.html", 112 | "cats": [ 1 ], 113 | "html": [ "<div class=\"[^\"]*parbase","_jcr_content","/etc/designs/","/etc/clientlibs/" ], 114 | "implies": "Java" 115 | }, 116 | "Adobe GoLive": { 117 | "website": "www.adobe.com/products/golive", 118 | "cats": [ 20 ], 119 | "meta": { "generator": "Adobe GoLive(?:\\s([\\d.]+))?\\;version:\\1" } 120 | }, 121 | "AdRiver": { 122 | "website": "adriver.ru", 123 | "cats": [ 36 ], 124 | "env": "^adriver$", 125 | "html": "(?:<embed[^>]+(?:src=\"https?://mh\\d?\\.adriver\\.ru/|flashvars=\"[^\"]*(?:http:%3A//(?:ad|mh\\d?)\\.adriver\\.ru/|adriver_banner))|<(?:(?:iframe|img)[^>]+src|a[^>]+href)=\"https?://ad\\.adriver\\.ru/)", 126 | "script": [ "(?:adriver\\.core\\.\\d\\.js|https?://(?:content|ad|masterh\\d)\\.adriver\\.ru/)" ] 127 | }, 128 | "Advanced Web Stats": { 129 | "website": "www.advancedwebstats.com", 130 | "cats": [ 10 ], 131 | "html": "aws\\.src = [^<]+caphyon-analytics", 132 | "implies": "Java" 133 | }, 134 | "Akamai": { 135 | "website": "akamai.com", 136 | "cats": [ 31 ], 137 | "headers": { "X-Akamai-Transformed": ".*" } 138 | }, 139 | "AlloyUI": { 140 | "website": "www.alloyui.com", 141 | "cats": [ 12 ], 142 | "env": "^AUI$", 143 | "script": "^https?://cdn\\.alloyui\\.com/", 144 | "implies": [ "Twitter Bootstrap", "YUI" ] 145 | }, 146 | "Amaya": { 147 | "website": "www.w3.org/Amaya", 148 | "cats": [ 20 ], 149 | "meta": { "generator": "Amaya(?: V?([\\d.]+[a-z]))?\\;version:\\1" } 150 | }, 151 | "amCharts": { 152 | "website": "amcharts.com", 153 | "cats": [ 25 ], 154 | "script": "amcharts.*\\.js", 155 | "env": "^AmCharts$" 156 | }, 157 | "Ametys": { 158 | "website": "ametys.org", 159 | "cats": [ 1 ], 160 | "meta": { "generator": "(?:Ametys|Anyware Technologies)" }, 161 | "script": "ametys\\.js", 162 | "implies": "Java" 163 | }, 164 | "Amiro.CMS": { 165 | "website": "amirocms.com", 166 | "cats": [ 1 ], 167 | "meta": { "generator": "Amiro" }, 168 | "html": "system_(?:js\\.php\\?script=|css\\.php\\?styles)[^\"]+cv=([\\d.]+)\\;version:\\1", 169 | "implies": "PHP" 170 | }, 171 | "AMPcms": { 172 | "website": "www.ampcms.org", 173 | "cats": [ 1 ], 174 | "headers": { "X-AMP-Version": "([\\d.]+)\\;version:\\1", "Set-Cookie": "^AMP=" }, 175 | "env": "^amp_js_init$", 176 | "implies": "PHP" 177 | }, 178 | "Anchor CMS": { 179 | "website": "anchorcms.com", 180 | "cats": [ 1, 11 ], 181 | "meta": { "generator": "Anchor CMS" } 182 | }, 183 | "AngularJS": { 184 | "website": "angularjs.org", 185 | "cats": [ 12 ], 186 | "env": "^angular$", 187 | "script": [ "angular(?:\\-|\\.)([\\d.]*\\d)[^/]*\\.js\\;version:\\1", "/([\\d.]+(\\-?rc[.\\d]*)*)/angular(\\.min)?\\.js\\;version:\\1", "angular.*\\.js" ] 188 | }, 189 | "AOLserver": { 190 | "website": "aolserver.com", 191 | "cats": [ 22 ], 192 | "headers": { "Server": "AOLserver/?([\\d.]+)?\\;version:\\1" } 193 | }, 194 | "Apache": { 195 | "website": "apache.org", 196 | "cats": [ 22 ], 197 | "headers": { "Server": "(?:Apache(?:$|/([\\d.]+)|[^/-])|(?:^|\\b)HTTPD)\\;version:\\1" } 198 | }, 199 | "Apache Hadoop": { 200 | "website": "hadoop.apache.org", 201 | "cats": [ 34 ], 202 | "html": "type=\"text/css\" href=\"/static/hadoop\\.css\"" 203 | }, 204 | "Apache HBase": { 205 | "website": "hbase.apache.org", 206 | "cats": [ 34 ], 207 | "html": "type=\"text/css\" href=\"/static/hbase\\.css\"" 208 | }, 209 | "Apache JSPWiki": { 210 | "website": "jspwiki.org", 211 | "cats": [ 8 ], 212 | "url": "wiki\\.jsp", 213 | "script": "jspwiki", 214 | "html": "<html[^>]* xmlns:jspwiki=" 215 | }, 216 | "Apache Tomcat": { 217 | "website": "tomcat.apache.org", 218 | "cats": [ 22 ], 219 | "headers": { "Server": "Apache-Coyote/?([\\d.]+)?\\;version:\\1" } 220 | }, 221 | "Apache Traffic Server": { 222 | "website": "trafficserver.apache.org/", 223 | "cats": [ 22 ], 224 | "headers": { "Server": "ATS/?([\\d.]+)?\\;version:\\1" } 225 | }, 226 | "AppNexus": { 227 | "website": "appnexus.com", 228 | "cats": [ 36 ], 229 | "html": "<(?:iframe|img)[^>]+adnxs\\.(?:net|com)", 230 | "script": "adnxs\\.(?:net|com)" 231 | }, 232 | "Arc Forum": { 233 | "website": "arclanguage.org", 234 | "cats": [ 2 ], 235 | "html": "ping\\.src = node\\.href;" 236 | }, 237 | "AsciiDoc": { 238 | "website": "www.methods.co.nz/asciidoc", 239 | "cats": [ 1, 20, 27 ], 240 | "meta": { "generator": "^AsciiDoc ([\\d.]+)\\;version:\\1" }, 241 | "env": "^asciidoc$" 242 | }, 243 | "ATEN": { 244 | "website": "www.aten.com", 245 | "cats": [ 22 ], 246 | "headers": { "Server": "ATEN HTTP Server(\\(V?([\\d\\.]+)\\))?\\;version:\\2" } 247 | }, 248 | "ATG Web Commerce": { 249 | "website": "oracle.com/us/products/applications/web-commerce/atg", 250 | "cats": [ 6 ], 251 | "headers": { "X-ATG-Version": "(?:ATGPlatform/([\\d.]+))?\\;version:\\1" }, 252 | "html": "<[^>]+_DARGS" 253 | }, 254 | "Atlassian Confluence": { 255 | "website": "www.atlassian.com/software/confluence/overview/team-collaboration-software", 256 | "cats": [ 8 ], 257 | "html": "Powered by <a href=[^>]+atlassian\\.com/software/confluence(?:[^>]+>Atlassian Confluence</a> ([\\d.]+))?\\;version:\\1", 258 | "headers": { "X-Confluence-Request-Time": ".*" }, 259 | "meta": { "confluence-request-time": ".*" }, 260 | "implies": "Java" 261 | }, 262 | "Atlassian Jira": { 263 | "website": "www.atlassian.com/software/jira/overview/", 264 | "cats": [ 13 ], 265 | "env": "^jira$", 266 | "script": "/jira/s/", 267 | "url": "/secure/Dashboard\\.jspa", 268 | "html": "Powered by\\s+<a href=[^>]+atlassian\\.com/(?:software/jira|jira-bug-tracking/)[^>]+>Atlassian\\s+JIRA(?:[^v]*v(?:ersion: )?(\\d+\\.\\d+(\\.\\d+)?))?\\;version:\\1", 269 | "implies": "Java" 270 | }, 271 | "AWStats": { 272 | "website": "awstats.sourceforge.net", 273 | "cats": [ 10 ], 274 | "meta": { "generator": "AWStats ([\\d.]+(?: \\(?:build [\\d.]+\\))?)\\;version:\\1" }, 275 | "implies": "Perl" 276 | }, 277 | "Backbone.js": { 278 | "website": "documentcloud.github.com/backbone", 279 | "cats": [ 12 ], 280 | "script": "backbone.*\\.js", 281 | "env": "^Backbone$", 282 | "implies": "Underscore.js" 283 | }, 284 | "Banshee": { 285 | "website": "www.banshee-php.org", 286 | "cats": [ 1, 18 ], 287 | "html": "Built upon the <a href=\"[^>]+banshee-php\\.org/\">[a-z]+</a>(?:v([\\d.]+))?\\;version:\\1", 288 | "implies": "PHP" 289 | }, 290 | "basket.js": { 291 | "website": "addyosmani.github.io/basket.js/", 292 | "cats": [ 12 ], 293 | "script": "basket.*\\.js", 294 | "env": "^basket$" 295 | }, 296 | "BaseHTTP": { 297 | "website": "docs.python.org/2/library/basehttpserver.html", 298 | "cats": [ 22 ], 299 | "headers": { "Server": "BaseHTTP\\/?([\\d\\.]+)?\\;version:\\1" }, 300 | "implies": "Python" 301 | }, 302 | "BIGACE": { 303 | "website": "bigace.de", 304 | "cats": [ 1 ], 305 | "meta": { "generator": "BIGACE ([\\d.]+)\\;version:\\1" }, 306 | "html": "(?:Powered by <a href=\"[^>]+BIGACE|<!--\\s+Site is running BIGACE)", 307 | "implies": "PHP" 308 | }, 309 | "Bigcommerce": { 310 | "website": "www.bigcommerce.com", 311 | "cats": [ 6 ], 312 | "url": "mybigcommerce\\.com", 313 | "html": "<link href=[^>]+cdn\\d+\\.bigcommerce\\.com/v", 314 | "script": "cdn\\d+\\.bigcommerce\\.com/v", 315 | "env": "^compareProducts$" 316 | }, 317 | "BigDump": { 318 | "website": "www.ozerov.de/bigdump.php", 319 | "cats": [ 3 ], 320 | "html": "<!-- <h1>BigDump: Staggered MySQL Dump Importer ver\\. ([\\d.b]+)\\;version:\\1", 321 | "implies": "PHP" 322 | }, 323 | "Bigware": { 324 | "website": "bigware.de", 325 | "cats": [ 6 ], 326 | "html": "(?:Diese <a href=[^>]+bigware\\.de|<a href=[^>]+/main_bigware_\\d+\\.php)", 327 | "url": "(?:\\?|&)bigWAdminID=", 328 | "headers": { "Set-Cookie": "(?:bigwareCsid|bigWAdminID)" }, 329 | "implies": "PHP" 330 | }, 331 | "BittAds": { 332 | "website": "bittads.com", 333 | "cats": [ 36 ], 334 | "script": "bittads\\.com/js/bitt\\.js$", 335 | "env": "^bitt$" 336 | }, 337 | "Blip.tv": { 338 | "website": "blip.tv", 339 | "cats": [ 14 ], 340 | "html": "<(?:param|embed|iframe)[^>]+blip\\.tv/play" 341 | }, 342 | "Blogger": { 343 | "website": "www.blogger.com", 344 | "cats": [ 11 ], 345 | "meta": { "generator": "blogger" }, 346 | "url": "\\.blogspot\\.com" 347 | }, 348 | "Boa": { 349 | "website": "www.boa.org", 350 | "cats": [ 22 ], 351 | "headers": { "Server": "Boa\\/?([\\d\\.a-z]+)?\\;version:\\1" } 352 | }, 353 | "Brother": { 354 | "website": "www.brother.com", 355 | "cats": [ 40 ] 356 | }, 357 | "BrowserCMS": { 358 | "website": "browsercms.org", 359 | "cats": [ 1 ], 360 | "meta": { "generator": "BrowserCMS ([\\d.]+)\\;version:\\1" }, 361 | "implies": "Ruby" 362 | }, 363 | "Bugzilla": { 364 | "website": "www.bugzilla.org", 365 | "cats": [ 13 ], 366 | "html": "href=\"enter_bug\\.cgi\">", 367 | "implies": "Perl" 368 | }, 369 | "Burning Board": { 370 | "website": "www.woltlab.com", 371 | "cats": [ 2 ], 372 | "html": "<a href=\"[^>]+woltlab\\.com.+Burning Board", 373 | "implies": "PHP" 374 | }, 375 | "Business Catalyst": { 376 | "website": "businesscatalyst.com", 377 | "cats": [ 1 ], 378 | "script": "CatalystScripts", 379 | "html": "<!-- BC_OBNW -->" 380 | }, 381 | "Canon": { 382 | "website": "www.canon.com", 383 | "cats": [ 40 ] 384 | }, 385 | "CakePHP": { 386 | "website": "cakephp.org", 387 | "cats": [ 18 ], 388 | "headers": { "Set-Cookie": "cakephp=" }, 389 | "meta": { "application-name": "CakePHP" }, 390 | "implies": "PHP" 391 | }, 392 | "Cargo": { 393 | "website": "cargocollective.com", 394 | "cats": [ 1 ], 395 | "meta": { "cargo_title": ".*" }, 396 | "script": "/cargo\\.", 397 | "html": "<link [^>]+Cargo feed", 398 | "implies": "PHP" 399 | }, 400 | "Catwalk": { 401 | "website": "www.canon.com", 402 | "cats": [ 22 ], 403 | "headers": { "Server": "Catwalk\\/?([\\d\\.]+)?\\;version:\\1" }, 404 | "implies": "Canon" 405 | }, 406 | "CentOS": { 407 | "website": "centos.org", 408 | "cats": [ 28 ], 409 | "headers": { "Server": "CentOS", "X-Powered-By": "CentOS" } 410 | }, 411 | "CFML": { 412 | "website": "adobe.com/products/coldfusion-family.html", 413 | "cats": [ 27 ] 414 | }, 415 | "CacheFly": { 416 | "website": "www.cachefly.com", 417 | "cats": [ 31 ], 418 | "headers": { "Server": "^CFS ", "X-CF1": ".+", "X-CF2": ".+" } 419 | }, 420 | "Chameleon": { 421 | "website": "chameleon-system.de", 422 | "cats": [ 1 ], 423 | "meta": { "generator": "chameleon-cms" }, 424 | "implies": [ "Apache", "PHP" ] 425 | }, 426 | "Chamilo": { 427 | "website": "www.chamilo.org", 428 | "cats": [ 21 ], 429 | "html": "\">Chamilo ([\\d.]+)</a>\\;version:\\1", 430 | "meta": { "generator": "Chamilo ([\\d.]+)\\;version:\\1" }, 431 | "headers": { "X-Powered-By": "Chamilo ([\\d.]+)\\;version:\\1" }, 432 | "implies": "PHP" 433 | }, 434 | "Chartbeat": { 435 | "website": "chartbeat.com", 436 | "cats": [ 10 ], 437 | "html": "function loadChartbeat\\(\\) \\{", 438 | "script": "chartbeat\\.js" 439 | }, 440 | "Cherokee": { 441 | "website": "www.cherokee-project.com", 442 | "cats": [ 22 ], 443 | "headers": { "Server": "Cherokee/([\\d.]+)\\;version:\\1" } 444 | }, 445 | "CherryPy": { 446 | "website": "www.cherrypy.org", 447 | "cats": [ 18, 22 ], 448 | "headers": { "Server": "CherryPy\\/?([\\d\\.]+)?\\;version:\\1" }, 449 | "implies": "Python" 450 | }, 451 | "Chitika": { 452 | "website": "chitika.com", 453 | "cats": [ 36 ], 454 | "script": "https?://scripts\\.chitika\\.net/", 455 | "env": "ch_c(?:lient|olor_site_link)" 456 | }, 457 | "CKEditor": { 458 | "website": "ckeditor.com", 459 | "cats": [ 24 ], 460 | "env": "^CKEDITOR$" 461 | }, 462 | "Cloudera": { 463 | "website": "www.cloudera.com", 464 | "cats": [ 34 ], 465 | "headers": { "Server": "cloudera" } 466 | }, 467 | "ClickHeat": { 468 | "website": "www.labsmedia.com/clickheat/index.html", 469 | "cats": [ 10 ], 470 | "script": "clickheat.*\\.js", 471 | "env": "^clickHeat", 472 | "implies": "PHP" 473 | }, 474 | "ClickTale": { 475 | "website": "www.clicktale.com", 476 | "cats": [ 10 ], 477 | "html": "if\\(typeof ClickTale(Tag)*==\\\"function\\\"\\)", 478 | "env": "^ClickTale" 479 | }, 480 | "Clicky": { 481 | "website": "getclicky.com", 482 | "cats": [ 10 ], 483 | "script": "static\\.getclicky\\.com", 484 | "env": "^clicky$" 485 | }, 486 | "CloudFlare": { 487 | "website": "www.cloudflare.com", 488 | "cats": [ 31 ], 489 | "headers": { "Server": "cloudflare" }, 490 | "env": "^CloudFlare$" 491 | }, 492 | "CMS Made Simple": { 493 | "website": "cmsmadesimple.org", 494 | "cats": [ 1 ], 495 | "meta": { "generator": "CMS Made Simple" }, 496 | "implies": "PHP" 497 | }, 498 | "CMSimple": { 499 | "website": "www.cmsimple.org/en", 500 | "cats": [ 1 ], 501 | "meta": { "generator": "CMSimple( [\\d.]+)?\\;version:\\1" }, 502 | "implies": "PHP" 503 | }, 504 | "CO2Stats": { 505 | "website": "co2stats.com", 506 | "cats": [ 10 ], 507 | "html": "src=[^>]+co2stats\\.com/propres\\.php" 508 | }, 509 | "CodeIgniter": { 510 | "website": "codeigniter.com", 511 | "cats": [ 18 ], 512 | "headers": { "Set-Cookie": "(?:exp_last_activity|exp_tracker|ci_session)" }, 513 | "implies": "PHP" 514 | }, 515 | "CodeMirror": { 516 | "website": "codemirror.net", 517 | "cats": [ 19 ], 518 | "env": "^CodeMirror$" 519 | }, 520 | "Commerce Server": { 521 | "website": "commerceserver.net", 522 | "cats": [ 6 ], 523 | "headers": { "COMMERCE-SERVER-SOFTWARE": ".+" }, 524 | "implies": "Microsoft ASP.NET" 525 | }, 526 | "CompaqHTTPServer": { 527 | "website": "www.hp.com", 528 | "cats": [ 22 ], 529 | "headers": { "Server": "CompaqHTTPServer\\/?([\\d\\.]+)?\\;version:\\1" } 530 | }, 531 | "comScore": { 532 | "website": "comscore.com", 533 | "cats": [ 10 ], 534 | "script": "\\.scorecardresearch\\.com/beacon\\.js|COMSCORE\\.beacon", 535 | "html": "<iframe[^>]* (?:id=\"comscore\"|scr=[^>]+comscore)|\\.scorecardresearch\\.com/beacon\\.js|COMSCORE\\.beacon", 536 | "env": "^_?COMSCORE$" 537 | }, 538 | "Concrete5": { 539 | "website": "concrete5.org", 540 | "cats": [ 1 ], 541 | "script": "concrete/js/", 542 | "meta": { "generator": "concrete5 - ([\\d.ab]+)\\;version:\\1" }, 543 | "env": "^CCM_IMAGE_PATH$", 544 | "implies": "PHP" 545 | }, 546 | "Connect": { 547 | "website": "www.senchalabs.org/connect", 548 | "cats": [ 18 ], 549 | "headers": { "X-Powered-By": "^Connect$" }, 550 | "implies": "node.js" 551 | }, 552 | "Contao": { 553 | "website": "contao.org", 554 | "cats": [ 1 ], 555 | "html": "(?:<!--[^>]+powered by (?:TYPOlight|Contao)-->|<link[^>]+(?:typolight|contao)\\.css)", 556 | "implies": "PHP" 557 | }, 558 | "Contenido": { 559 | "website": "contenido.org/en", 560 | "cats": [ 1 ], 561 | "meta": { "generator": "Contenido ([\\d.]+)\\;version:\\1" }, 562 | "implies": "PHP" 563 | }, 564 | "Contens": { 565 | "website": "www.contens.com/en/pub/index.cfm", 566 | "cats": [ 1 ], 567 | "meta": { "generator": "Contensis CMS Version ([\\d.]+)\\;version:\\1" }, 568 | "implies": [ "Java", "CFML" ] 569 | }, 570 | "ContentBox": { 571 | "website": "www.gocontentbox.org", 572 | "cats": [ 1, 11 ], 573 | "meta": { "generator": "ContentBox powered by ColdBox" }, 574 | "implies": "Adobe ColdFusion" 575 | }, 576 | "ConversionLab": { 577 | "website": "www.trackset.it/conversionlab", 578 | "cats": [ 10 ], 579 | "script": "conversionlab\\.trackset\\.com/track/tsend\\.js" 580 | }, 581 | "Coppermine": { 582 | "website": "coppermine-gallery.net", 583 | "cats": [ 7 ], 584 | "html": "<!--Coppermine Photo Gallery ([\\d.]+)\\;version:\\1", 585 | "implies": "PHP" 586 | }, 587 | "Cosmoshop": { 588 | "website": "cosmoshop.de", 589 | "cats": [ 6 ], 590 | "script": "cosmoshop_functions\\.js" 591 | }, 592 | "Cotonti": { 593 | "website": "www.cotonti.com", 594 | "cats": [ 1 ], 595 | "meta": { "generator": "Cotonti" }, 596 | "implies": "PHP" 597 | }, 598 | "CouchDB": { 599 | "website": "couchdb.apache.org", 600 | "cats": [ 22 ], 601 | "headers": { "Server": "CouchDB/([\\d.]+)\\;version:\\1" } 602 | }, 603 | "cPanel": { 604 | "website": "www.cpanel.net", 605 | "cats": [ 9 ], 606 | "headers": { "Server": "cpsrvd/([\\d.]+)\\;version:\\1" }, 607 | "html": "<!-- cPanel" 608 | }, 609 | "CPG Dragonfly": { 610 | "website": "dragonflycms.org", 611 | "cats": [ 1 ], 612 | "headers": { "X-Powered-By": "Dragonfly CMS" }, 613 | "meta": { "generator": "CPG Dragonfly" }, 614 | "implies": "PHP" 615 | }, 616 | "Crazy Egg": { 617 | "website": "crazyegg.com", 618 | "cats": [ 10 ], 619 | "env": "^CE2$", 620 | "script": "cetrk\\.com/pages/scripts/\\d+/\\d+\\.js" 621 | }, 622 | "Cross Pixel": { 623 | "website": "datadesk.crsspxl.com", 624 | "cats": [ 10 ], 625 | "env": "^crsspxl$", 626 | "script": "tag\\.crsspxl\\.com/s1\\.js" 627 | }, 628 | "CS Cart": { 629 | "website": "www.cs-cart.com", 630 | "cats": [ 6 ], 631 | "env": "^fn_compare_strings$", 632 | "html": "&nbsp;Powered by (?:<a href=[^>]+cs-cart\\.com|CS-Cart)", 633 | "implies": "PHP" 634 | }, 635 | "CubeCart": { 636 | "website": "www.cubecart.com", 637 | "cats": [ 6 ], 638 | "html": "(?:Powered by <a href=[^>]+cubecart\\.com|<p[^>]+>Powered by CubeCart)", 639 | "meta": { "generator": "cubecart" }, 640 | "implies": "PHP" 641 | }, 642 | "Cufon": { 643 | "website": "cufon.shoqolate.com", 644 | "cats": [ 17 ], 645 | "script": "cufon-yui\\.js", 646 | "env": "^Cufon$" 647 | }, 648 | "D3": { 649 | "website": "d3js.org", 650 | "cats": [ 25 ], 651 | "script": "d3(?:\\. v[0-9]+)?(?:\\.min)?\\.js", 652 | "env": "^d3$" 653 | }, 654 | "Dancer": { 655 | "website": "perldancer.org", 656 | "cats": [ 18 ], 657 | "headers": { "X-Powered-By": "Perl Dancer ([\\d.]+)\\;version:\\1", "Server": "Perl Dancer ([\\d.]+)\\;version:\\1" }, 658 | "implies": "Perl" 659 | }, 660 | "Danneo CMS": { 661 | "website": "danneo.com", 662 | "cats": [ 1 ], 663 | "headers": { "X-Powered-By": "CMS Danneo ([\\d.]+)\\;version:\\1" }, 664 | "meta": { "generator": "Danneo CMS ([\\d.]+)\\;version:\\1" }, 665 | "implies": [ "Apache", "PHP" ] 666 | }, 667 | "Darwin": { 668 | "website": "opensource.apple.com", 669 | "cats": [ 28 ], 670 | "headers": { "Server": "Darwin", "X-Powered-By": "Darwin" } 671 | }, 672 | "DataLife Engine": { 673 | "website": "dle-news.ru", 674 | "cats": [ 1 ], 675 | "env": "^dle_root$", 676 | "meta": { "generator": "DataLife Engine" }, 677 | "implies": [ "PHP", "Apache" ] 678 | }, 679 | "David Webbox": { 680 | "website": "www.tobit.com", 681 | "cats": [ 22 ], 682 | "headers": { "Server": "David-WebBox/([\\d.a]+ \\(\\d+\\))\\;version:\\1" } 683 | }, 684 | "Debian": { 685 | "website": "debian.org", 686 | "cats": [ 28 ], 687 | "headers": { "Server": "Debian", "X-Powered-By": "(?:Debian|dotdeb|(sarge|etch|lenny|squeeze|wheezy|jessie))\\;version:\\1" } 688 | }, 689 | "debut": { 690 | "website": "www.brother.com", 691 | "cats": [ 22 ], 692 | "headers": { "Server": "debut\\/?([\\d\\.]+)?\\;version:\\1" }, 693 | "implies": "Brother" 694 | }, 695 | "DedeCMS": { 696 | "website": "dedecms.com", 697 | "cats": [ 1 ], 698 | "env": "^DedeContainer", 699 | "script": "dedeajax", 700 | "implies": "PHP" 701 | }, 702 | "Dell": { 703 | "website": "dell.com", 704 | "cats": [ 40 ] 705 | }, 706 | "Demandware": { 707 | "website": "demandware.com", 708 | "cats": [ 6 ], 709 | "headers": { "Server": "Demandware eCommerce Server" }, 710 | "html": "<[^>]+demandware\\.edgesuite", 711 | "env": "^dwAnalytics$" 712 | }, 713 | "DHTMLX": { 714 | "website": "dhtmlx.com", 715 | "cats": [ 12 ], 716 | "script": "dhtmlxcommon\\.js" 717 | }, 718 | "DirectAdmin": { 719 | "website": "www.directadmin.com", 720 | "cats": [ 9 ], 721 | "html": "<a[^>]+>DirectAdmin</a> Web Control Panel", 722 | "headers": { "Server": "DirectAdmin Daemon v([\\d.]+)\\;version:\\1" }, 723 | "implies": [ "PHP", "Apache" ] 724 | }, 725 | "Discourse": { 726 | "website": "www.discourse.org/", 727 | "cats": [ 2 ], 728 | "env": "Discourse" 729 | }, 730 | "Disqus": { 731 | "website": "disqus.com", 732 | "cats": [ 15 ], 733 | "script": "disqus_url", 734 | "html": "<div[^>]+id=\"disqus_thread\"", 735 | "env": "^DISQUS" 736 | }, 737 | "Django": { 738 | "website": "djangoproject.com", 739 | "cats": [ 18 ], 740 | "html": "(?:powered by <a[^>]+>Django ?([\\d.]+)?|<div style=\"display:none\"><input name=\"csrfmiddlewaretoken\" value=\"[a-z0-9]{32}\" type=\"hidden\"></div>)\\;version:\\1", 741 | "env": "^__admin_media_prefix__", 742 | "implies": "Python" 743 | }, 744 | "Django CMS": { 745 | "website": "django-cms.org", 746 | "cats": [ 1 ], 747 | "script": "media/cms/js/csrf\\.js", 748 | "headers": { "Set-Cookie": "django[^;]=" }, 749 | "implies": "Django" 750 | }, 751 | "Dojo": { 752 | "website": "dojotoolkit.org", 753 | "cats": [ 12 ], 754 | "script": "([\\d.]+)/dojo/dojo(?:\\.xd)?\\.js\\;version:\\1", 755 | "env": "^dojo$" 756 | }, 757 | "Dokeos": { 758 | "website": "dokeos.com", 759 | "cats": [ 21 ], 760 | "meta": { "generator": "Dokeos" }, 761 | "html": "(?:Portal <a[^>]+>Dokeos|@import \"[^\"]+dokeos_blue)", 762 | "headers": { "X-Powered-By": "Dokeos" }, 763 | "implies": [ "PHP", "Xajax", "jQuery", "CKEditor" ] 764 | }, 765 | "DokuWiki": { 766 | "website": "www.dokuwiki.org", 767 | "cats": [ 8 ], 768 | "meta": { "generator": "DokuWiki( Release [\\-\\d]+)?\\;version:\\1" }, 769 | "headers": { "Set-Cookie": "DokuWiki=" }, 770 | "implies": "PHP" 771 | }, 772 | "Dotclear": { 773 | "website": "dotclear.org", 774 | "cats": [ 1 ], 775 | "implies": "PHP" 776 | }, 777 | "DotNetNuke": { 778 | "website": "dotnetnuke.com", 779 | "cats": [ 1 ], 780 | "meta": { "generator": "DotNetNuke" }, 781 | "headers": { "X-Compressed-By": "DotNetNuke", "Set-Cookie": "DotNetNukeAnonymous=" }, 782 | "html": "<!-- by DotNetNuke Corporation", 783 | "env": "^DotNetNuke$", 784 | "implies": "Microsoft ASP.NET" 785 | }, 786 | "Doxygen": { 787 | "website": "stack.nl/~dimitri/doxygen", 788 | "cats": [ 4 ], 789 | "meta": { "generator": "Doxygen ([\\d.]+)\\;version:\\1" }, 790 | "html": "(?:<!-- Generated by Doxygen ([\\d.]+)|<link[^>]+doxygen.css)\\;version:\\1" 791 | }, 792 | "DreamWeaver": { 793 | "website": "www.adobe.com/products/dreamweaver", 794 | "cats": [ 20 ], 795 | "html": "(?:<!--[^>]*(?:InstanceBeginEditable|Dreamweaver([^>]+)target|DWLayoutDefaultTable)|function MM_preloadImages\\(\\) \\{)\\;version:\\1" 796 | }, 797 | "Drupal": { 798 | "website": "drupal.org", 799 | "cats": [ 1 ], 800 | "script": "drupal\\.js", 801 | "html": "<(?:link|style)[^>]+sites/(?:default|all)/(?:themes|modules)/", 802 | "headers": { "X-Drupal-Cache": ".*", "X-Generator": "Drupal(?:\\s([\\d.]+))?\\;version:\\1", "Expires": "19 Nov 1978" }, 803 | "env": "^Drupal$", 804 | "implies": "PHP" 805 | }, 806 | "Drupal Commerce": { 807 | "website": "drupalcommerce.org", 808 | "cats": [ 6 ], 809 | "html": "(?:id=\"block[_-]commerce[_-]cart[_-]cart|class=\"commerce[_-]product[_-]field)", 810 | "implies": "Drupal" 811 | }, 812 | "dwhttpd": { 813 | "website": "???", 814 | "cats": [ 22 ], 815 | "headers": { "Server": "dwhttpd\\/?([\\d\\.a-z]+)?\\;version:\\1" } 816 | }, 817 | "Dynamicweb": { 818 | "website": "www.dynamicweb.dk", 819 | "cats": [ 1, 6, 10 ], 820 | "meta": { "generator": "Dynamicweb ([\\d.]+)\\;version:\\1" }, 821 | "headers": { "Set-Cookie": "Dynamicweb=" }, 822 | "implies": "Microsoft ASP.NET" 823 | }, 824 | "e107": { 825 | "website": "e107.org", 826 | "cats": [ 1 ], 827 | "script": "[^a-z0-9]e107\\.js", 828 | "headers": { "Set-Cookie": "e107_tz[^;]+=", "X-Powered-By": "e107" }, 829 | "implies": "PHP" 830 | }, 831 | "EdgeCast": { 832 | "website": "www.edgecast.com", 833 | "cats": [ 31 ], 834 | "headers": { "Server": "^EC(?:S|Acc)" }, 835 | "url": "https?://(?:[^/]+\\.)?edgecastcdn\\.net/" 836 | }, 837 | "eHTTP": { 838 | "website": "???", 839 | "cats": [ 22 ], 840 | "headers": { "Server": "\\beHTTP(?: v?([\\d\\.]+))?\\;version:\\1" }, 841 | "implies": [ "HP ProCurve"] 842 | }, 843 | "ELOG": { 844 | "website": "midas.psi.ch/elog", 845 | "cats": [ 19 ], 846 | "html": "<title>ELOG Logbook Selection</title>" 847 | }, 848 | "ELOG HTTP": { 849 | "website": "midas.psi.ch/elog", 850 | "cats": [ 22 ], 851 | "headers": { "Server": "ELOG HTTP( \\d[\\-\\d\\.]+)?\\;version:\\1" }, 852 | "implies": "ELOG" 853 | }, 854 | "Eloqua": { 855 | "website": "eloqua.com", 856 | "cats": [ 32 ], 857 | "script": "elqCfg\\.js", 858 | "env": "^elq(?:SiteID|Load|CurESite)$" 859 | }, 860 | "Ember.js": { 861 | "website": "emberjs.com", 862 | "cats": [ 12 ], 863 | "env": "^Ember$" 864 | }, 865 | "Embedthis-http": { 866 | "website": "github.com/embedthis/http", 867 | "cats": [ 22 ], 868 | "headers": { "Server": "Embedthis-http(?:/([\\d.]+))?\\;version:\\1" } 869 | }, 870 | "E-Merchant": { 871 | "website": "e-merchant.com", 872 | "cats": [ 6 ], 873 | "script": "cdn\\.e-merchant\\.com" 874 | }, 875 | "Enyo": { 876 | "website": "enyojs.com", 877 | "cats": [ 12, 26 ], 878 | "script": "enyo\\.js", 879 | "env": "^enyo$" 880 | }, 881 | "EPiServer": { 882 | "website": "episerver.com", 883 | "cats": [ 1 ], 884 | "meta": { "generator": "EPiServer" }, 885 | "headers": { "Set-Cookie": "EPi(?:Trace|Server)[^;]*=" }, 886 | "implies": "Microsoft ASP.NET" 887 | }, 888 | "EPrints": { 889 | "website": "www.eprints.org", 890 | "cats": [ 19 ], 891 | "meta": { "generator": "EPrints ([\\d.]+)\\;version:\\1" }, 892 | "env": "^EPJS_menu_template$", 893 | "implies": "Perl" 894 | }, 895 | "Erlang": { 896 | "website": "www.erlang.org", 897 | "cats": [ 27 ], 898 | "headers": { "Server": "Erlang( OTP/([\\-\\d\\.ABR]+))?\\;version:\\1" } 899 | }, 900 | "eSyndiCat": { 901 | "website": "esyndicat.com", 902 | "cats": [ 1 ], 903 | "meta": { "generator": "^eSyndiCat " }, 904 | "headers": { "X-Drectory-Script": "^eSyndiCat" }, 905 | "env": "^esyndicat$", 906 | "implies": [ "PHP" ] 907 | }, 908 | "EWS-NIC4": { 909 | "website": "dell.com", 910 | "cats": [ 22 ], 911 | "headers": { "Server": "EWS-NIC4(?:\\/([\\d\\.a-z]+))?\\;version:\\1" }, 912 | "implies": "Dell" 913 | }, 914 | "Exhibit": { 915 | "website": "simile-widgets.org/exhibit/", 916 | "cats": [ 25 ], 917 | "script": "exhibit.*\\.js", 918 | "env": "^Exhibit$" 919 | }, 920 | "Express": { 921 | "website": "expressjs.com", 922 | "cats": [ 18 ], 923 | "headers": { "X-Powered-By": "^Express$" }, 924 | "implies": [ "node.js" ] 925 | }, 926 | "total.js": { 927 | "website": "totaljs.com", 928 | "cats": [ 18 ], 929 | "headers": { "X-Powered-By": "^total\\.js" }, 930 | "implies": [ "node.js" ] 931 | }, 932 | "ExpressionEngine": { 933 | "website": "expressionengine.com", 934 | "cats": [ 1 ], 935 | "headers": { "Set-Cookie": "(?:exp_last_activity|exp_tracker)" }, 936 | "implies": "PHP" 937 | }, 938 | "ExtJS": { 939 | "website": "www.extjs.com", 940 | "cats": [ 12 ], 941 | "script": "ext-base\\.js", 942 | "env": "^Ext$" 943 | }, 944 | "eZ Publish": { 945 | "website": "ez.no", 946 | "cats": [ 1, 6 ], 947 | "meta": { "generator": "eZ Publish" }, 948 | "headers": { "X-Powered-By": "^eZ Publish" }, 949 | "implies": "PHP" 950 | }, 951 | "Fact Finder": { 952 | "website": "fact-finder.com", 953 | "cats": [ 29 ], 954 | "html": "<!-- Factfinder", 955 | "script": "Suggest\\.ff", 956 | "url": "(?:/ViewParametricSearch|ffsuggest\\.[a-z]htm)" 957 | }, 958 | "FAST ESP": { 959 | "website": "microsoft.com/enterprisesearch", 960 | "cats": [ 29 ], 961 | "html": "<form[^>]+id=\"fastsearch\"" 962 | }, 963 | "FAST Search for SharePoint": { 964 | "website": "sharepoint.microsoft.com/en-us/product/capabilities/search/Pages/Fast-Search.aspx", 965 | "cats": [ 29 ], 966 | "url": "Pages/SearchResults\\.aspx\\?k=", 967 | "html": "<input[^>]+ name=\"ParametricSearch", 968 | "implies": [ "Microsoft SharePoint", "Microsoft ASP.NET" ] 969 | }, 970 | "Fat-Free Framework": { 971 | "website": "fatfreeframework.com", 972 | "cats": [ 18 ], 973 | "headers": { "X-Powered-By": "Fat-Free Framework" }, 974 | "implies": [ "PHP" ] 975 | }, 976 | "Fedora": { 977 | "website": "fedoraproject.org", 978 | "cats": [ 28 ], 979 | "headers": { "Server": "Fedora" } 980 | }, 981 | "FlashCom": { 982 | "website": "???", 983 | "cats": [ 22 ], 984 | "headers": { "Server": "FlashCom\\/?([\\d\\.]+)?\\;version:\\1" } 985 | }, 986 | "FlexCMP": { 987 | "website": "www.flexcmp.com/cms/home", 988 | "cats": [ 1 ], 989 | "meta": { "generator": "FlexCMP" }, 990 | "html": "<!--[^>]+FlexCMP[^>v]+v\\. ([\\d.]+)\\;version:\\1", 991 | "headers": { "X-Powered-By": "FlexCMP.+\\[v\\. ([\\d.]+)\\;version:\\1", "X-Flex-Lang": ".+" } 992 | }, 993 | "FluxBB": { 994 | "website": "fluxbb.org", 995 | "cats": [ 2 ], 996 | "html": "Powered by (?:<strong>)?<a href=\"[^>]+fluxbb" 997 | }, 998 | "Flyspray": { 999 | "website": "flyspray.org", 1000 | "cats": [ 13 ], 1001 | "html": "(?:<a[^>]+>Powered by Flyspray|<map id=\"projectsearchform)", 1002 | "headers": { "Set-Cookie": "flyspray_project=" } 1003 | }, 1004 | "FreeBSD": { 1005 | "website": "freebsd.org", 1006 | "cats": [ 28 ], 1007 | "headers": { "Server": "FreeBSD(?: ([\\d.]+))?\\;version:\\1" } 1008 | }, 1009 | "FrontPage": { 1010 | "website": "office.microsoft.com/frontpage", 1011 | "cats": [ 20 ], 1012 | "meta": { "generator": "Microsoft FrontPage(?:\\s([\\d.]+))?\\;version:\\1" }, 1013 | "html": "<html[^>]+urn:schemas-microsoft-com:office:office" 1014 | }, 1015 | "FWP": { 1016 | "website": "fwpshop.org", 1017 | "cats": [ 6 ], 1018 | "meta": { "generator": "FWP Shop" }, 1019 | "html": "<!--\\s+FwP Systems" 1020 | }, 1021 | "Gallery": { 1022 | "website": "gallery.menalto.com", 1023 | "cats": [ 7 ], 1024 | "env": "^galleryAuthToken$", 1025 | "html": "<div id=\"gsNavBar\" class=\"gcBorder1\">" 1026 | }, 1027 | "Gambio": { 1028 | "website": "gambio.de", 1029 | "cats": [ 6 ], 1030 | "html": "(?:<link[^>]* href=\"templates/gambio/|<a[^>]content\\.php\\?coID=\\d|<!-- gambio eof -->)", 1031 | "implies": "PHP" 1032 | }, 1033 | "Gauges": { 1034 | "website": "get.gaug.es", 1035 | "cats": [ 10 ], 1036 | "headers": { "Set-Cookie": "_gauges_[^;]+=" }, 1037 | "env": "^_gauges$" 1038 | }, 1039 | "Gentoo": { 1040 | "website": "www.gentoo.org", 1041 | "cats": [ 28 ], 1042 | "headers": { "X-Powered-By": "gentoo" } 1043 | }, 1044 | "Get Satisfaction": { 1045 | "website": "getsatisfaction.com", 1046 | "cats": [ 13 ], 1047 | "env": "^GSFN" 1048 | }, 1049 | "GetSimple CMS": { 1050 | "website": "get-simple.info", 1051 | "cats": [ 1 ], 1052 | "meta": { "generator": "GetSimple" }, 1053 | "implies": "PHP" 1054 | }, 1055 | "Ghost": { 1056 | "website": "ghost.org", 1057 | "cats": [ 11 ], 1058 | "meta": { "generator": "Ghost(?:\\s([\\d.]+))?\\;version:\\1" }, 1059 | "headers": { "X-Ghost-Cache-Status": ".*" } 1060 | }, 1061 | "GoAhead": { 1062 | "website": "embedthis.com/products/goahead/index.html", 1063 | "cats": [ 22 ], 1064 | "headers": { "Server": "GoAhead" } 1065 | }, 1066 | "Google Analytics": { 1067 | "website": "google.com/analytics", 1068 | "cats": [ 10 ], 1069 | "html": "_gaq\\.push\\(\\['_setAccount|i\\['GoogleAnalyticsObject'\\]|ga\\.async = true", 1070 | "script": "(?:\\.google-analytics\\.com\/ga\\.js|\/urchin\\.js|\\.google-analytics\\.com\/analytics\\.js)", 1071 | "headers": { "Set-Cookie": "__utma" }, 1072 | "env": "^gaGlobal$" 1073 | }, 1074 | "Google AdSense": { 1075 | "website": "google.com/adsense", 1076 | "cats": [ 36 ], 1077 | "env": [ "^google_ad_", "^__google_ad_", "^Goog_AdSense_" ], 1078 | "script": [ "googlesyndication\\.com/pagead/show_ads\\.js", "ad\\.ca\\.doubleclick\\.net", "2mdn\\.net" ], 1079 | "env": "^google_ad_", 1080 | "script": [ "googlesyndication\\.com/pagead/show_ads\\.js", "ad\\.ca\\.doubleclick.net" ] 1081 | }, 1082 | "Google App Engine": { 1083 | "website": "code.google.com/appengine", 1084 | "cats": [ 22 ], 1085 | "headers": { "Server": "Google Frontend" } 1086 | }, 1087 | "Google Charts": { 1088 | "website": "developers.google.com/chart/", 1089 | "cats": [ 25 ], 1090 | "env": "^google\\.visualization$" 1091 | }, 1092 | "Google Code Prettify": { 1093 | "website": "code.google.com/p/google-code-prettify", 1094 | "cats": [ 19 ], 1095 | "env": "^prettyPrint$" 1096 | }, 1097 | "Google Font API": { 1098 | "website": "code.google.com/apis/webfonts", 1099 | "cats": [ 17 ], 1100 | "script": "googleapis\\.com/.+webfont", 1101 | "html": "<link[^>]* href=[^>]+fonts\\.googleapis\\.com", 1102 | "env": "^WebFonts$" 1103 | }, 1104 | "Google Maps": { 1105 | "website": "maps.google.com", 1106 | "cats": [ 35 ], 1107 | "script": "(?:maps\\.google\\.com/maps\\?file=api(?:&v=([\\d.]+))?|maps\\.google\\.com/maps/api/staticmap)\\;version:API v\\1" 1108 | }, 1109 | "Google PageSpeed": { 1110 | "website": "developers.google.com/speed/pagespeed/mod", 1111 | "cats": [ 23, 33 ], 1112 | "headers": { "X-Mod-Pagespeed": "([\\d.]+)\\;version:\\1" } 1113 | }, 1114 | "Google Sites": { 1115 | "website": "sites.google.com", 1116 | "cats": [ 1 ], 1117 | "url": "sites\\.google\\.com" 1118 | }, 1119 | "Google Tag Manager": { 1120 | "website": "www.google.com/tagmanager", 1121 | "cats": [ 19 ], 1122 | "html": "googletagmanager\\.com/ns\\.html[^>]+></iframe>", 1123 | "env": "^googletag$" 1124 | }, 1125 | "Google Wallet": { 1126 | "website": "wallet.google.com", 1127 | "cats": [ 41 ], 1128 | "script": [ "checkout\\.google\\.com", "wallet\\.google\\.com" ] 1129 | }, 1130 | "Google Web Toolkit": { 1131 | "website": "developers.google.com/web-toolkit", 1132 | "cats": [ 18 ], 1133 | "env": "^__gwt_", 1134 | "implies": "Java" 1135 | }, 1136 | "GoStats": { 1137 | "website": "gostats.com", 1138 | "cats": [ 10 ], 1139 | "env": "^_go(?:stats|_track)" 1140 | }, 1141 | "Graffiti CMS": { 1142 | "website": "graffiticms.codeplex.com", 1143 | "cats": [ 1 ], 1144 | "meta": { "generator": "Graffiti CMS ([^\"]+)\\;version:\\1" }, 1145 | "script": "/graffiti\\.js", 1146 | "headers": { "Set-Cookie": "graffitibot[^;]=" } 1147 | }, 1148 | "Grandstream": { 1149 | "website": "www.grandstream.com", 1150 | "cats": [ 22, 39 ], 1151 | "headers": { "Server": "Grandstream\\/?([\\d\\.]+)?\\;version:\\1" } 1152 | }, 1153 | "Gravatar": { 1154 | "website": "gravatar.com", 1155 | "cats": [ 19 ], 1156 | "html": "(secure\\.)?gravatar\\.com/avatar/.+", 1157 | "env": "^Gravatar$" 1158 | }, 1159 | "Gravity Insights": { 1160 | "website": "insights.gravity.com", 1161 | "cats": [ 10 ], 1162 | "env": "^GravityInsights$" 1163 | }, 1164 | "G-WAN": { 1165 | "website": "gwan.com", 1166 | "cats": [ 22 ], 1167 | "headers": { "Server": "G-WAN" } 1168 | }, 1169 | "GX WebManager": { 1170 | "website": "www.gxsoftware.com/en/products/web-content-management.htm", 1171 | "cats": [ 1 ], 1172 | "meta": { "generator": "GX WebManager(?: ([\\d.]+))?\\;version:\\1" }, 1173 | "html": "<!--\\s+Powered by GX" 1174 | }, 1175 | "Handlebars": { 1176 | "website": "handlebarsjs.com", 1177 | "cats": [ 12 ], 1178 | "env": "^Handlebars$" 1179 | }, 1180 | "Hello Bar": { 1181 | "website": "hellobar.com", 1182 | "cats": [ 5 ], 1183 | "script": "(hellobar\\.com/hellobar\\.js|new HelloBar)", 1184 | "html": "/hellobar\\.js" 1185 | }, 1186 | "Hiawatha": { 1187 | "website": "hiawatha-webserver.org", 1188 | "cats": [ 22 ], 1189 | "headers": { "Server": "Hiawatha v([\\d.]+)\\;version:\\1" } 1190 | }, 1191 | "Highcharts": { 1192 | "website": "highcharts.com", 1193 | "cats": [ 25 ], 1194 | "script": "highcharts.*\\.js", 1195 | "env": "^Highcharts$" 1196 | }, 1197 | "Highstock": { 1198 | "website": "highcharts.com/products/highstock", 1199 | "cats": [ 25 ], 1200 | "script": "highstock(?:\\-|\\.)?([\\d\\.]*\\d).*\\.js\\;version:\\1" 1201 | }, 1202 | "Hogan.js": { 1203 | "website": "twitter.github.com/hogan.js", 1204 | "cats": [ 12 ], 1205 | "env": "^Hogan$" 1206 | }, 1207 | "Hotaru CMS": { 1208 | "website": "hotarucms.org", 1209 | "cats": [ 1 ], 1210 | "meta": { "generator": "Hotaru CMS" }, 1211 | "headers": { "Set-Cookie": "hotaru_mobile=" } 1212 | }, 1213 | "HP ProCurve": { 1214 | "website": "hp.com/networking", 1215 | "cats": [ 37 ] 1216 | }, 1217 | "HubSpot": { 1218 | "website": "hubspot.com", 1219 | "cats": [ 32 ], 1220 | "html": "<!-- Start of Async HubSpot", 1221 | "env": "^(?:_hsq|hubspot)$" 1222 | }, 1223 | "Hybris": { 1224 | "website": "hybris.com", 1225 | "cats": [ 6 ], 1226 | "html": "(?:/sys_master/|/hybr/|/_ui/desktop/)", 1227 | "headers": { "Set-Cookie": "_hybris" }, 1228 | "implies": "Java" 1229 | }, 1230 | "IBM Coremetrics": { 1231 | "website": "ibm.com/software/marketing-solutions/coremetrics", 1232 | "cats": [ 10 ], 1233 | "script": "cmdatatagutils\\.js" 1234 | }, 1235 | "IBM HTTP Server": { 1236 | "website": "ibm.com/software/webservers/httpservers", 1237 | "cats": [ 22 ], 1238 | "headers": { "Server": "IBM_HTTP_Server(?:/([\\d.]+))?\\;version:\\1" } 1239 | }, 1240 | "IBM WebSphere Portal": { 1241 | "website": "ibm.com/software/websphere/portal", 1242 | "cats": [ 1 ], 1243 | "headers": { "IBM-Web2-Location": ".*", "Itx-Generated-Timestamp": ".+" }, 1244 | "url": "/wps/", 1245 | "implies": "Java" 1246 | }, 1247 | "IBM WebSphere Commerce": { 1248 | "website": "ibm.com/software/genservers/commerceproductline", 1249 | "cats": [ 6 ], 1250 | "url": "/wcs/", 1251 | "implies": "Java" 1252 | }, 1253 | "iCongo": { 1254 | "website": "hybris.com/icongo", 1255 | "cats": [ 6 ], 1256 | "meta": { "iCongo": ".*" }, 1257 | "implies": "Adobe ColdFusion" 1258 | }, 1259 | "IIS": { 1260 | "website": "www.iis.net", 1261 | "cats": [ 22 ], 1262 | "headers": { "Server": "IIS(?:/([\\d.]+))?\\;version:\\1" }, 1263 | "implies": "Windows Server" 1264 | }, 1265 | "ImpressCMS": { 1266 | "website": "www.impresscms.org", 1267 | "cats": [ 1 ], 1268 | "script": "include/linkexternal\\.js", 1269 | "meta": { "generator": "ImpressCMS" }, 1270 | "headers": { "X-Powered-By": "ImpressCMS", "Set-Cookie": "ICMSession[^;]+=" }, 1271 | "implies": "PHP" 1272 | }, 1273 | "ImpressPages": { 1274 | "website": "impresspages.org", 1275 | "cats": [ 1 ], 1276 | "meta": { "generator": "ImpressPages(?: CMS)?( [\\d.]*)\\;version:\\1" }, 1277 | "implies": "PHP" 1278 | }, 1279 | "Incapsula": { 1280 | "website": "www.incapsula.com", 1281 | "cats": [ 31 ], 1282 | "headers": { "X-CDN": "Incapsula" } 1283 | }, 1284 | "Indexhibit": { 1285 | "website": "www.indexhibit.org", 1286 | "cats": [ 1 ], 1287 | "meta": { "generator": "Indexhibit" }, 1288 | "html": "<(?:link|a href) [^>]+ndxz-studio", 1289 | "implies": [ "PHP", "Apache", "Exhibit" ] 1290 | }, 1291 | "Indico": { 1292 | "website": "indico-software.org", 1293 | "cats": [ 1 ], 1294 | "headers": { "Set-cookie": "MAKACSESSION" }, 1295 | "html": "Powered by\\s+(?:CERN )?<a href=\"http://(?:cdsware\\.cern\\.ch/indico/|indico-software\\.org|cern\\.ch/indico)\">(?:CDS )?Indico( [\\d\\.]+)?\\;version:\\1" 1296 | }, 1297 | "InstantCMS": { 1298 | "website": "www.instantcms.ru", 1299 | "cats": [ 1 ], 1300 | "meta": { "generator": "InstantCMS" }, 1301 | "headers": { "Set-Cookie": "InstantCMS\\[logdate\\]=" } 1302 | }, 1303 | "IntenseDebate": { 1304 | "website": "intensedebate.com", 1305 | "cats": [ 15 ], 1306 | "script": "intensedebate\\.com" 1307 | }, 1308 | "Intercom": { 1309 | "website": "intercom.io", 1310 | "cats": [ 10 ], 1311 | "script": "(api\\.intercom\\.io/api|static\\.intercomcdn\\.com/intercom\\.v1)", 1312 | "env": "^Intercom$" 1313 | }, 1314 | "Intershop": { 1315 | "website": "intershop.com", 1316 | "cats": [ 6 ], 1317 | "script": "(?:is-bin|INTERSHOP)" 1318 | }, 1319 | "IPB": { 1320 | "website": "www.invisionpower.com", 1321 | "cats": [ 2 ], 1322 | "script": "jscripts/ips_", 1323 | "env": "^(?:IPBoard$|ipb_var)", 1324 | "html": "<link[^>]+ipb_[^>]+\\.css" 1325 | }, 1326 | "iWeb": { 1327 | "website": "apple.com/ilife/iweb", 1328 | "cats": [ 20 ], 1329 | "meta": { "generator": "^iWeb( [\\d.]+)?\\;version:\\1" } 1330 | }, 1331 | "JAlbum": { 1332 | "website": "jalbum.net/en", 1333 | "cats": [ 7 ], 1334 | "meta": { "generator": "JAlbum( [\\d.]+)?\\;version:\\1" }, 1335 | "implies": "Java" 1336 | }, 1337 | "Jalios": { 1338 | "website": "www.jalios.com", 1339 | "cats": [ 1 ], 1340 | "meta": { "generator": "Jalios" } 1341 | }, 1342 | "Java": { 1343 | "website": "java.com", 1344 | "cats": [ 27 ], 1345 | "headers": { "Set-Cookie": "JSESSIONID" } 1346 | }, 1347 | "Javascript Infovis Toolkit": { 1348 | "website": "thejit.org", 1349 | "cats": [ 25 ], 1350 | "script": "jit.*\\.js", 1351 | "env": "^\\$jit$" 1352 | }, 1353 | "JavaServer Faces": { 1354 | "website": "javaserverfaces.java.net", 1355 | "cats": [ 18 ], 1356 | "headers": { "X-Powered-By": "JSF(?:/([\\d.]+))?\\;version:\\1" }, 1357 | "implies": "Java" 1358 | }, 1359 | "JavaServer Pages": { 1360 | "website": "www.oracle.com/technetwork/java/javaee/jsp/index.html", 1361 | "cats": [ 18 ], 1362 | "headers": { "X-Powered-By": "JSP(?:/([\\d.]+))?\\;version:\\1" }, 1363 | "implies": "Java" 1364 | }, 1365 | "Java Servlet": { 1366 | "website": "www.oracle.com/technetwork/java/index-jsp-135475.html", 1367 | "cats": [ 18 ], 1368 | "headers": { "X-Powered-By": "Servlet(?:.([\\d.]+))?\\;version:\\1" }, 1369 | "implies": "Java" 1370 | }, 1371 | "JBoss Application Server": { 1372 | "website": "jboss.org/jbossas.html", 1373 | "cats": [ 22 ], 1374 | "headers": { "X-Powered-By": "JBoss(?:-([\\d.]+))?\\;version:\\1" } 1375 | }, 1376 | "JBoss Web": { 1377 | "website": "jboss.org/jbossweb", 1378 | "cats": [ 22 ], 1379 | "headers": { "X-Powered-By": "JBossWeb(?:-([\\d.]+))?\\;version:\\1" }, 1380 | "implies": "JBoss Application Server", 1381 | "excludes": "Apache Tomcat" 1382 | }, 1383 | "Jetty": { 1384 | "website": "www.eclipse.org/jetty", 1385 | "cats": [ 22 ], 1386 | "headers": { "Server": "Jetty(?:\\(([\\d\\.]+\\d+))?\\;version:\\1" }, 1387 | "implies": "Java" 1388 | }, 1389 | "Jirafe": { 1390 | "website": "jirafe.com", 1391 | "cats": [ 10, 32 ], 1392 | "script": "/jirafe\\.js", 1393 | "env": "^jirafe$" 1394 | }, 1395 | "Jo": { 1396 | "website": "joapp.com", 1397 | "cats": [ 26, 12 ], 1398 | "env": "^jo(?:Cache|DOM|Event)$" 1399 | }, 1400 | "JobberBase": { 1401 | "website": "jobberbase.com", 1402 | "cats": [ 19 ], 1403 | "meta": { "generator": "Jobberbase" }, 1404 | "env": "^Jobber$" 1405 | }, 1406 | "Joomla": { 1407 | "website": "joomla.org", 1408 | "cats": [ 1 ], 1409 | "url": "option=com_", 1410 | "meta": { "generator": "Joomla!(?: ([\\d.]+))?\\;version:\\1" }, 1411 | "html": "(?:<div[^>]+id=\"wrapper_r\"|<[^>]+(?:feed|components)/com_|<table[^>]+class=\"pill)\\;confidence:50", 1412 | "headers": { "X-Content-Encoded-By": "Joomla! ([\\d.]+)\\;version:\\1" }, 1413 | "env": "^(jcomments|Joomla)$", 1414 | "implies": "PHP" 1415 | }, 1416 | "jqPlot": { 1417 | "website": "www.jqplot.com", 1418 | "cats": [ 25 ], 1419 | "script": "jqplot.*\\.js" 1420 | }, 1421 | "jQTouch": { 1422 | "website": "jqtouch.com", 1423 | "cats": [ 26 ], 1424 | "script": "jqtouch.*\\.js", 1425 | "env": "^jQT$" 1426 | }, 1427 | "jQuery": { 1428 | "website": "jquery.com", 1429 | "cats": [ 12 ], 1430 | "script": [ "jquery(?:\\-|\\.)([\\d.]*\\d)[^/]*\\.js\\;version:\\1", "/([\\d.]+)/jquery(\\.min)?\\.js\\;version:\\1", "jquery.*\\.js" ], 1431 | "env": "^jQuery$" 1432 | }, 1433 | "jQuery Mobile": { 1434 | "website": "jquerymobile.com", 1435 | "cats": [ 26 ], 1436 | "script": "jquery\\.mobile(?:-([\\d.]+rc\\d))?.*\\.js(?:\\?ver=([\\d.]+))?\\;version:\\1", 1437 | "implies": "jQuery" 1438 | }, 1439 | "jQuery Sparklines": { 1440 | "website": "omnipotent.net/jquery.sparkline/", 1441 | "cats": [ 25 ], 1442 | "script": "jquery\\.sparkline.*\\.js", 1443 | "implies": "jQuery" 1444 | }, 1445 | "jQuery UI": { 1446 | "website": "jqueryui.com", 1447 | "cats": [ 12 ], 1448 | "script": [ "jquery-ui(?:-|\\.)([\\d.]*\\d)[^/]*\\.js\\;version:\\1", "([\\d.]+)/jquery-ui(\\.min)?\\.js\\;version:\\1", "jquery-ui.*\\.js" ], 1449 | "implies": "jQuery" 1450 | }, 1451 | "JS Charts": { 1452 | "website": "www.jscharts.com", 1453 | "cats": [ 25 ], 1454 | "script": "jscharts.*\\.js", 1455 | "env": "^JSChart$" 1456 | }, 1457 | "JTL Shop": { 1458 | "website": "www.jtl-software.de/produkte/jtl-shop3", 1459 | "cats": [ 6 ], 1460 | "html": "(?:<input[^>]+name=\"JTLSHOP|<a href=\"jtl\\.php)", 1461 | "headers": { "Set-Cookie": "JTLSHOP=" } 1462 | }, 1463 | "K2": { 1464 | "website": "getk2.org", 1465 | "cats": [ 19 ], 1466 | "html": "<!--(?: JoomlaWorks \"K2\"| Start K2)", 1467 | "env": "^K2RatingURL$", 1468 | "implies": "Joomla" 1469 | }, 1470 | "Kampyle": { 1471 | "website": "www.kampyle.com", 1472 | "cats": [ 10, 13 ], 1473 | "script": "cf\\.kampyle\\.com/k_button\\.js", 1474 | "headers": { "Set-Cookie": "k_visit" }, 1475 | "env": "^k_track$" 1476 | }, 1477 | "Kendo UI": { 1478 | "website": "www.kendoui.com", 1479 | "cats": [ 18 ], 1480 | "env": "^kendo$", 1481 | "html": "<link[^>]*\\s+href=[^>]*styles/kendo\\.common(?:\\.min)?\\.css[^>]*/>", 1482 | "implies": "jQuery" 1483 | }, 1484 | "Kentico CMS": { 1485 | "website": "www.kentico.comhome.aspx", 1486 | "cats": [ 1 ], 1487 | "meta": { "generator": "Kentico CMS ([\\d.R]+ \\(build [\\d.]+\\))\\;version:\\1" }, 1488 | "headers": { "Set-Cookie": "CMSPreferredCulture=" } 1489 | }, 1490 | "KineticJS": { 1491 | "website": "kineticjs.com", 1492 | "cats": [ 25 ], 1493 | "script": "kinetic(?:-v?([\\d.]+))?\\.js\\;version:\\1", 1494 | "env": "^Kinetic$" 1495 | }, 1496 | "KISSmetrics": { 1497 | "website": "www.kissmetrics.com", 1498 | "cats": [ 10 ], 1499 | "env": "^KM_COOKIE_DOMAIN$" 1500 | }, 1501 | "Knockout.js": { 1502 | "website": "knockoutjs.com", 1503 | "cats": [ 12 ], 1504 | "env": "^ko$" 1505 | }, 1506 | "Koego": { 1507 | "website": "www.koego.com/en", 1508 | "cats": [ 10 ], 1509 | "script": "tracking\\.koego\\.com/end/ego\\.js", 1510 | "env": "^ego_domains$" 1511 | }, 1512 | "Kohana": { 1513 | "website": "kohanaframework.org", 1514 | "cats": [ 18 ], 1515 | "headers": { "Set-Cookie": "kohanasession", "X-Powered-By": "Kohana Framework ([\\d.]+)\\;version:\\1" }, 1516 | "implies": "PHP" 1517 | }, 1518 | "Kolibri CMS": { 1519 | "website": "alias.io", 1520 | "cats": [ 1 ], 1521 | "meta": { "generator": "Kolibri" }, 1522 | "headers": { "X-Powered-By": "Kolibri" } 1523 | }, 1524 | "Komodo CMS": { 1525 | "website": "www.komodocms.com", 1526 | "cats": [ 1 ], 1527 | "meta": { "generator": "^Komodo CMS" }, 1528 | "implies": "PHP" 1529 | }, 1530 | "Koobi": { 1531 | "website": "dream4.de/cms", 1532 | "cats": [ 1 ], 1533 | "meta": { "generator": "Koobi" }, 1534 | "html": "<!--[^K>-]+Koobi ([a-z\\d.]+)\\;version:\\1" 1535 | }, 1536 | "Kooboo CMS": { 1537 | "website": "kooboo.com", 1538 | "cats": [ 1 ], 1539 | "headers": { "X-KoobooCMS-Version": "(.*)\\;version:\\1" }, 1540 | "script": "/Kooboo", 1541 | "implies": "Microsoft ASP.NET" 1542 | }, 1543 | "KS_HTTP": { 1544 | "website": "www.canon.com", 1545 | "cats": [ 22 ], 1546 | "headers": { "Server": "KS_HTTP\\/?([\\d\\.]+)?\\;version:\\1" }, 1547 | "implies": [ "Canon"] 1548 | }, 1549 | "LabVIEW": { 1550 | "website": "ni.com/labview", 1551 | "cats": [ 22 ], 1552 | "headers": { "Server": "LabVIEW(?:/([\\d\\.]+))?\\;version:\\1" } 1553 | }, 1554 | "Laravel": { 1555 | "website": "laravel.com", 1556 | "cats": [ 18 ], 1557 | "headers": { "Set-Cookie": "laravel_session" }, 1558 | "implies": "PHP" 1559 | }, 1560 | "LEPTON": { 1561 | "website": "www.lepton-cms.org", 1562 | "cats": [ 1 ], 1563 | "meta": { "generator": "LEPTON" }, 1564 | "headers": { "Set-Cookie": "lep\\d+sessionid=" }, 1565 | "implies": "PHP" 1566 | }, 1567 | "Less": { 1568 | "website": "lesscss.org", 1569 | "cats": [ 19 ], 1570 | "html": "<link[^>]+ rel=\"stylesheet/less\"" 1571 | }, 1572 | "libwww-perl-daemon": { 1573 | "website": "search.cpan.org/~gaas/HTTP-Daemon-6.01/lib/HTTP/Daemon.pm", 1574 | "cats": [ 22 ], 1575 | "headers": { "Server": "libwww-perl-daemon(?:/([\\d\\.]+))?\\;version:\\1" }, 1576 | "implies": "Perl" 1577 | }, 1578 | "Liferay": { 1579 | "website": "www.liferay.com", 1580 | "cats": [ 1 ], 1581 | "env": "^Liferay$", 1582 | "headers": { "Liferay-Portal": "[a-z\\s]+([\\d.]+)\\;version:\\1" } 1583 | }, 1584 | "Lift": { 1585 | "website": "liftweb.net", 1586 | "cats": [ 18 ], 1587 | "headers": { "X-Lift-Version": "(.+)\\;version:\\1" }, 1588 | "implies": "Scala" 1589 | }, 1590 | "Lightbox": { 1591 | "website": "lokeshdhakar.com/projects/lightbox2/", 1592 | "cats": [ 7, 12 ], 1593 | "script": "lightbox.*\\.js", 1594 | "html": "<link [^>]*href=\"[^\"]+lightbox(\\.min)?\\.css" 1595 | }, 1596 | "LightMon Engine": { 1597 | "website": "en.lightmon.ru", 1598 | "cats": [ 1 ], 1599 | "html": "<!-- Lightmon Engine Copyright Lightmon", 1600 | "implies": "PHP" 1601 | }, 1602 | "lighttpd": { 1603 | "website": "www.lighttpd.net", 1604 | "cats": [ 22 ], 1605 | "headers": { "Server": "lighttpd(?:/([\\d.]+))?\\;version:\\1" } 1606 | }, 1607 | "LimeSurvey": { 1608 | "website": "limesurvey.org/", 1609 | "cats": [ 19 ], 1610 | "headers": { "generator": "LimeSurvey" } 1611 | }, 1612 | "LiteSpeed": { 1613 | "website": "litespeedtech.com", 1614 | "cats": [ 22 ], 1615 | "headers": { "Server": "^LiteSpeed$" } 1616 | }, 1617 | "Livefyre": { 1618 | "website": "livefyre.com", 1619 | "cats": [ 15 ], 1620 | "html": "<[^>]+(?:id|class)=\"livefyre", 1621 | "script": "livefyre_init\\.js", 1622 | "env": [ "^fyre$", "^FyreLoader$", "^LF$" ] 1623 | }, 1624 | "LiveJournal": { 1625 | "website": "www.livejournal.com", 1626 | "cats": [ 11 ], 1627 | "url": "\\.livejournal\\.com" 1628 | }, 1629 | "LiveStreet CMS": { 1630 | "website": "livestreetcms.com", 1631 | "cats": [ 1 ], 1632 | "headers": { "X-Powered-By": "LiveStreet CMS" } 1633 | }, 1634 | "Lockerz Share": { 1635 | "website": "share.lockerz.com", 1636 | "cats": [ 5 ], 1637 | "script": "addtoany\\.com/menu/page\\.js", 1638 | "env": "^a2apage_init$" 1639 | }, 1640 | "Locomotive": { 1641 | "website": "www.locomotivecms.com", 1642 | "cats": [ 1 ], 1643 | "html": "<link[^>]*/sites/[a-z0-9]{24}/theme/stylesheets/.*>", 1644 | "implies": [ "Ruby on Rails", "MongoDB" ] 1645 | }, 1646 | "Logitech Media Server": { 1647 | "website": "www.mysqueezebox.com", 1648 | "cats": [ 22, 38 ], 1649 | "headers": { "Server": "Logitech Media Server(?: \\(([\\d\\.]+))?\\;version:\\1" } 1650 | }, 1651 | "Lotus Domino": { 1652 | "website": "www-01.ibm.com/software/lotus/products/domino", 1653 | "cats": [ 22 ], 1654 | "headers": { "Server": "Lotus-Domino" } 1655 | }, 1656 | "Lua": { 1657 | "website": "www.lua.org", 1658 | "cats": [ 27 ], 1659 | "headers": { "X-Powered-By": "\\bLua(?: ([\\d.]+))?\\;version:\\1" } 1660 | }, 1661 | "Magento": { 1662 | "website": "www.magentocommerce.com", 1663 | "cats": [ 6 ], 1664 | "script": [ "js/mage", "skin/frontend/(?:default|(enterprise))\\;version:\\1?Enterprise:Community" ], 1665 | "headers": { "Set-Cookie": "frontend=\\;confidence:50" }, 1666 | "env": "^(?:Mage|VarienForm)$", 1667 | "implies": "PHP" 1668 | }, 1669 | "Mambo": { 1670 | "website": "mambo-foundation.org", 1671 | "cats": [ 1 ], 1672 | "meta": { "generator": "Mambo" } 1673 | }, 1674 | "MantisBT": { 1675 | "website": "www.mantisbt.org", 1676 | "cats": [ 13 ], 1677 | "html": "<img[^>]+ alt=\"Powered by Mantis Bugtracker" 1678 | }, 1679 | "ManyContacts": { 1680 | "website": "www.manycontacts.com", 1681 | "cats": [ 5 ], 1682 | "html": "\/assets\/js\/manycontacts\\.min\\.js", 1683 | "script": "\/assets\/js\/manycontacts\\.min\\.js" 1684 | }, 1685 | "Marketo": { 1686 | "website": "www.marketo.com", 1687 | "cats": [ 32 ], 1688 | "script": "munchkin\\.marketo\\.net/munchkin\\.js", 1689 | "env": "^Munchkin$" 1690 | }, 1691 | "MathJax": { 1692 | "website": "mathjax.org", 1693 | "cats": [ 25 ], 1694 | "script": "mathjax.js", 1695 | "env": "^MathJax$" 1696 | }, 1697 | "MaxSite CMS": { 1698 | "website": "max-3000.com", 1699 | "cats": [ 1 ], 1700 | "meta": { "generator": "MaxSite CMS" } 1701 | }, 1702 | "MediaElement.js": { 1703 | "website": "mediaelementjs.com", 1704 | "cats": [ 14 ], 1705 | "env": "^mejs$" 1706 | }, 1707 | "MediaTomb": { 1708 | "website": "mediatomb.cc", 1709 | "cats": [ 38 ], 1710 | "headers": { "Server": "MediaTomb(?:/([0-9.]+))?\\;version:\\1" } 1711 | }, 1712 | "MediaWiki": { 1713 | "website": "www.mediawiki.org", 1714 | "cats": [ 8 ], 1715 | "meta": { "generator": "MediaWiki" }, 1716 | "html": "(?:<a[^>]+>Powered by MediaWiki</a>|<[^>]+id=\"t-specialpages)" 1717 | }, 1718 | "Meebo": { 1719 | "website": "www.meebo.com", 1720 | "cats": [ 5 ], 1721 | "html": "(?:<iframe id=\"meebo-iframe\"|Meebo\\(?:'domReady'\\))" 1722 | }, 1723 | "Methode": { 1724 | "website": "www.eidosmedia.com/solutions", 1725 | "cats": [ 1 ], 1726 | "env": "^eidosBase$\\;confidence:99", 1727 | "html": "<!-- Methode uuid: \"[a-f0-9]+\" ?-->", 1728 | "meta": { "eomportal-instanceid": "[0-9]+", "eomportal-id": "[0-9]+", "eomportal-loid": "[0-9.]+", "eomportal-uuid": "[a-f0-9]+", "eomportal-lastUpdate": ".*" } 1729 | }, 1730 | "Microsoft ASP.NET": { 1731 | "website": "www.asp.net", 1732 | "cats": [ 18 ], 1733 | "url": "\\.aspx(?:$|\\?)", 1734 | "html": "<input[^>]+name=\"__VIEWSTATE", 1735 | "headers": { "X-Powered-By": "ASP\\.NET\\;confidence:50", "X-AspNet-Version": "(.+)\\;version:\\1" }, 1736 | "implies": "IIS\\;confidence:50" 1737 | }, 1738 | "Microsoft SharePoint": { 1739 | "website": "sharepoint.microsoft.com", 1740 | "cats": [ 1 ], 1741 | "meta": { "generator": "Microsoft SharePoint" }, 1742 | "headers": { "MicrosoftSharePointTeamServices": "(.*)\\;version:\\1", "X-SharePointHealthScore": ".*", "SPRequestGuid": ".*", "SharePointHealthScore": ".*" }, 1743 | "env": "^_spBodyOnLoadCalled$" 1744 | }, 1745 | "MiniBB": { 1746 | "website": "www.minibb.com", 1747 | "cats": [ 2 ], 1748 | "html": "<a href=\"[^>]+minibb.+\\s+<!--End of copyright link" 1749 | }, 1750 | "MiniServ": { 1751 | "website": "sourceforge.net/projects/miniserv", 1752 | "cats": [ 22 ], 1753 | "headers": { "Server": "MiniServ\\/?([\\d\\.]+)?\\;version:\\1" } 1754 | }, 1755 | "Mint": { 1756 | "website": "haveamint.com", 1757 | "cats": [ 10 ], 1758 | "script": "mint/\\?js", 1759 | "env": "^Mint$" 1760 | }, 1761 | "Mixpanel": { 1762 | "website": "mixpanel.com", 1763 | "cats": [ 10 ], 1764 | "script": "api\\.mixpanel\\.com/track", 1765 | "env": "^Mixpanel$" 1766 | }, 1767 | "MOBOTIX": { 1768 | "website": "mobotix.com", 1769 | "cats": [ 39 ], 1770 | "meta": { "publisher": "MOBOTIX AG\\;confidence:40", "copyright": "MOBOTIX AG\\;confidence:40", "author": "MOBOTIX AG\\;confidence:40" }, 1771 | "url": "control/userimage\\.html\\;confidence:70" 1772 | }, 1773 | "MochiKit": { 1774 | "website": "mochikit.com", 1775 | "cats": [ 12 ], 1776 | "script": "MochiKit\\.js", 1777 | "env": "^MochiKit$" 1778 | }, 1779 | "Modernizr": { 1780 | "website": "www.modernizr.com", 1781 | "cats": [ 12 ], 1782 | "script": "modernizr(?:-([\\d.]*[\\d]))?.*\\.js\\;version:\\1", 1783 | "env": "^Modernizr$" 1784 | }, 1785 | "MODx": { 1786 | "website": "modxcms.com", 1787 | "cats": [ 1 ], 1788 | "html": "(?:<a[^>]+>Powered by MODx</a>|<(?:link|script)[^>]+assets/snippets/)", 1789 | "env": "^MODX_MEDIA_PATH$", 1790 | "headers": { "X-Powered-By": "^MODx", "Set-Cookie": "SN4[a-f\\d]{12}" }, 1791 | "implies": "PHP" 1792 | }, 1793 | "mod_auth_pam": { 1794 | "website": "pam.sourceforge.net/mod_auth_pam", 1795 | "cats": [ 33 ], 1796 | "headers": { "Server": "mod_auth_pam(?:/([\\d\\.]+))?\\;version:\\1" }, 1797 | "implies": "Apache" 1798 | }, 1799 | "mod_fastcgi": { 1800 | "website": "www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html", 1801 | "cats": [ 33 ], 1802 | "headers": { "Server": "mod_fastcgi(?:/([\\d.]+))?\\;version:\\1" }, 1803 | "implies": "Apache" 1804 | }, 1805 | "mod_jk": { 1806 | "website": "tomcat.apache.org/tomcat-3.3-doc/mod_jk-howto.html", 1807 | "cats": [ 33 ], 1808 | "headers": { "Server": "mod_jk(?:/([\\d\\.]+))?\\;version:\\1" }, 1809 | "implies": [ "Apache Tomcat", "Apache" ] 1810 | }, 1811 | "mod_perl": { 1812 | "website": "perl.apache.org", 1813 | "cats": [ 33 ], 1814 | "headers": { "Server": "mod_perl(?:/([\\d\\.]+))?\\;version:\\1" }, 1815 | "implies": [ "Apache" ] 1816 | }, 1817 | "mod_python": { 1818 | "website": "www.modpython.org", 1819 | "cats": [ 33 ], 1820 | "headers": { "Server": "mod_python(?:/([\\d.]+))?\\;version:\\1" }, 1821 | "implies": [ "Python", "Apache" ] 1822 | }, 1823 | "mod_rack": { 1824 | "website": "phusionpassenger.com", 1825 | "cats": [ 33 ], 1826 | "headers": { "Server": "mod_rack(?:/([\\d.]+))?\\;version:\\1", "X-Powered-By": "mod_rack(?:/([\\d.]+))?\\;version:\\1" }, 1827 | "implies": [ "Ruby on Rails\\;confidence:50", "Apache" ] 1828 | }, 1829 | "mod_rails": { 1830 | "website": "phusionpassenger.com", 1831 | "cats": [ 33 ], 1832 | "headers": { "Server": "mod_rails(?:/([\\d.]+))?\\;version:\\1", "X-Powered-By": "mod_rails(?:/([\\d.]+))?\\;version:\\1" }, 1833 | "implies": [ "Ruby on Rails\\;confidence:50", "Apache" ] 1834 | }, 1835 | "mod_ssl": { 1836 | "website": "modssl.org", 1837 | "cats": [ 33 ], 1838 | "headers": { "Server": "mod_ssl(?:/([\\d.]+))?\\;version:\\1" }, 1839 | "implies": "Apache" 1840 | }, 1841 | "mod_wsgi": { 1842 | "website": "code.google.com/p/modwsgi", 1843 | "cats": [ 33 ], 1844 | "headers": { "Server": "mod_wsgi(?:/([\\d.]+))?\\;version:\\1", "X-Powered-By": "mod_wsgi(?:/([\\d.]+))?\\;version:\\1" }, 1845 | "implies": [ "Python\\;confidence:50", "Apache" ] 1846 | }, 1847 | "MoinMoin": { 1848 | "website": "moinmo.in", 1849 | "cats": [ 8 ], 1850 | "script": "moin(?:_static(\\d)(\\d)(\\d)|.+)/common/js/common\\.js\\;version:\\1.\\2.\\3", 1851 | "env": "^show_switch2gui$", 1852 | "implies": "Python" 1853 | }, 1854 | "Mojolicious": { 1855 | "website": "mojolicio.us", 1856 | "cats": [ 18 ], 1857 | "headers": { "x-powered-by": "mojolicious" }, 1858 | "implies": "Perl" 1859 | }, 1860 | "Mollom": { 1861 | "website": "mollom.com", 1862 | "cats": [ 16 ], 1863 | "script": "mollom\\.js", 1864 | "html": "<img[^>]+\\.mollom\\.com" 1865 | }, 1866 | "Mondo Media": { 1867 | "website": "mondo-media.de", 1868 | "cats": [ 6 ], 1869 | "meta": { "generator": "Mondo Shop" } 1870 | }, 1871 | "Mongrel": { 1872 | "website": "mongrel2.org", 1873 | "cats": [ 22 ], 1874 | "headers": { "Server": "Mongrel" }, 1875 | "implies": "Ruby" 1876 | }, 1877 | "MongoDB": { 1878 | "website": "www.mongodb.org", 1879 | "cats": [ 34 ] 1880 | }, 1881 | "Mono": { 1882 | "website": "mono-project.com", 1883 | "cats": [ 18 ], 1884 | "headers": { "X-Powered-By": "Mono" } 1885 | }, 1886 | "Moodle": { 1887 | "website": "moodle.org", 1888 | "cats": [ 21 ], 1889 | "html": "<img[^>]+moodlelogo", 1890 | "headers": { "Set-Cookie": "MoodleSession" }, 1891 | "env": "^moodle", 1892 | "implies": "PHP" 1893 | }, 1894 | "Moogo": { 1895 | "website": "www.moogo.com", 1896 | "cats": [ 1 ], 1897 | "script": "kotisivukone\\.js" 1898 | }, 1899 | "MooTools": { 1900 | "website": "mootools.net", 1901 | "cats": [ 12 ], 1902 | "script": "mootools.*\\.js", 1903 | "env": "^MooTools$" 1904 | }, 1905 | "Movable Type": { 1906 | "website": "movabletype.org", 1907 | "cats": [ 1 ], 1908 | "meta": { "generator": "Movable Type" } 1909 | }, 1910 | "M.R. Inc Webserver": { 1911 | "website": "mrincworld.com", 1912 | "cats": [ 22 ], 1913 | "headers": { "Server": "M\\.R\\. Inc Inc Webserver" } 1914 | }, 1915 | "M.R. Inc Wild CMS": { 1916 | "website": "mrincworld.com", 1917 | "cats": [ 1, 6 ], 1918 | "headers": { "X-Powered-By": "M\\.R\\. Inc Inc Wild CMS" } 1919 | }, 1920 | "Mura CMS": { 1921 | "website": "www.getmura.com", 1922 | "cats": [ 1, 11 ], 1923 | "meta": { "generator": "Mura CMS ([\\d]+)\\;version:\\1" }, 1924 | "implies": "Adobe ColdFusion" 1925 | }, 1926 | "Mustache": { 1927 | "website": "mustache.github.com", 1928 | "cats": [ 12 ], 1929 | "env": "^Mustache$" 1930 | }, 1931 | "MyBB": { 1932 | "website": "www.mybboard.net", 1933 | "cats": [ 2 ], 1934 | "html": "(?:<script [^>]+\\s+<!--\\s+lang\\.no_new_posts|<a[^>]* title=\"Powered By MyBB)", 1935 | "env": "^MyBB$" 1936 | }, 1937 | "MyBlogLog": { 1938 | "website": "www.mybloglog.com", 1939 | "cats": [ 5 ], 1940 | "script": "pub\\.mybloglog\\.com" 1941 | }, 1942 | "Mynetcap": { 1943 | "website": "www.netcap-creation.fr", 1944 | "cats": [ 1 ], 1945 | "meta": { "generator": "Mynetcap" } 1946 | }, 1947 | "MySQL": { 1948 | "website": "mysql.com", 1949 | "cats": [ 34 ] 1950 | }, 1951 | "Nedstat": { 1952 | "website": "www.nedstat.com", 1953 | "cats": [ 10 ], 1954 | "html": "sitestat\\(\".+nl\\.sitestat\\.com" 1955 | }, 1956 | "Netmonitor": { 1957 | "website": "netmonitor.fi/en", 1958 | "cats": [ 10 ], 1959 | "script": "netmonitor\\.fi/nmtracker\\.js", 1960 | "env": "^netmonitor$" 1961 | }, 1962 | "New Relic": { 1963 | "website": "newrelic.com", 1964 | "cats": [ 10 ], 1965 | "env": "^NREUM" 1966 | }, 1967 | "Nginx": { 1968 | "website": "nginx.org", 1969 | "cats": [ 22 ], 1970 | "headers": { "Server": "nginx(?:/([\\d.]+))?\\;version:\\1" } 1971 | }, 1972 | "node.js": { 1973 | "website": "nodejs.org", 1974 | "cats": [ 27 ] 1975 | }, 1976 | "Nokia Maps": { 1977 | "website": "developer.here.net", 1978 | "cats": [ 35 ] 1979 | }, 1980 | "NOIX": { 1981 | "website": "www.noix.com.br/tecnologias/joomla", 1982 | "cats": [ 19 ], 1983 | "html": "(?:<[^>]+(?:src|href)=[^>]*(?:/media/noix)|<!-- NOIX)" 1984 | }, 1985 | "nopCommerce": { 1986 | "website": "www.nopcommerce.com", 1987 | "cats": [ 6 ], 1988 | "html": "(?:<!--Powered by nopCommerce|Powered by: <a[^>]+nopcommerce)" 1989 | }, 1990 | "Open AdStream": { 1991 | "website": "xaxis.com", 1992 | "cats": [ 36 ], 1993 | "env": "^OAS_AD$" 1994 | }, 1995 | "Open Web Analytics": { 1996 | "website": "openwebanalytics.com", 1997 | "cats": [ 10 ], 1998 | "html": "<!-- (?:Start|End) Open Web Analytics Tracker -->", 1999 | "env": "^_?owa_" 2000 | }, 2001 | "OneStat": { 2002 | "website": "www.onestat.com", 2003 | "cats": [ 10 ], 2004 | "html": "var p==.+stat\\.onestat\\.com/stat\\.aspx\\?tagver" 2005 | }, 2006 | "OpenCart": { 2007 | "website": "www.opencart.com", 2008 | "cats": [ 6 ], 2009 | "html": "(?:index\\.php\\?route=[a-z]+/|Powered By <a href=\"[^>]+OpenCart)", 2010 | "implies": "PHP" 2011 | }, 2012 | "openEngine": { 2013 | "website": "openengine.de/html/pages/de/", 2014 | "cats": [ 1 ], 2015 | "meta": { "openEngine": ".*" } 2016 | }, 2017 | "OpenGrok": { 2018 | "website": "hub.opensolaris.org/bin/view/Project+opengrok/WebHome", 2019 | "cats": [ 19 ], 2020 | "headers": { "Set-Cookie": "OpenGrok" }, 2021 | "meta": { "generator": "OpenGrok(?: v?([\\d.]+))?\\;version:\\1" }, 2022 | "implies": "Java" 2023 | }, 2024 | "OpenGSE": { 2025 | "website": "code.google.com/p/opengse", 2026 | "cats": [ 22 ], 2027 | "headers": { "Server": "GSE" }, 2028 | "implies": "Java" 2029 | }, 2030 | "OpenLayers": { 2031 | "website": "openlayers.org", 2032 | "cats": [ 35 ], 2033 | "script": "openlayers", 2034 | "env": "^OpenLayers$" 2035 | }, 2036 | "OpenNemas": { 2037 | "website": "www.opennemas.com", 2038 | "cats": [ 1 ], 2039 | "meta": { "generator": "OpenNemas(.*)" }, 2040 | "headers": { "X-Powered-By": "OpenNemas" } 2041 | }, 2042 | "OpenSSL": { 2043 | "website": "openssl.org", 2044 | "cats": [ 33 ], 2045 | "headers": { "Server": "OpenSSL(?:/([\\d.]+[a-z]?))?\\;version:\\1" } 2046 | }, 2047 | "OpenText Web Solutions": { 2048 | "website": "websolutions.opentext.com", 2049 | "cats": [ 1 ], 2050 | "html": "<!--[^>]+published by Open Text Web Solutions", 2051 | "implies": "Microsoft ASP.NET" 2052 | }, 2053 | "Ophal": { 2054 | "website": "ophal.org", 2055 | "cats": [ 1, 11, 18 ], 2056 | "headers": { "X-Powered-By": "^Ophal(?:/([\\d.]+(?:-alpha\\d+)))?\\;version:\\1" }, 2057 | "implies": "Lua" 2058 | }, 2059 | "Optimizely": { 2060 | "website": "optimizely.com", 2061 | "cats": [ 10 ], 2062 | "script": "optimizely\\.com.*\\.js", 2063 | "env": "^optimizely$" 2064 | }, 2065 | "Oracle Application Server": { 2066 | "website": "www.oracle.com/technetwork/middleware/ias/overview/index.html", 2067 | "cats": [ 22 ], 2068 | "headers": { "Server": "Oracle\\bApplication\\bServer(?:\\b(\\d+[a-z]?))?\\;version:\\1" } 2069 | }, 2070 | "Oracle Recommendations On Demand": { 2071 | "website": "www.oracle.com/us/products/applications/commerce/recommendations-on-demand/index.html", 2072 | "cats": [ 10 ], 2073 | "script": "atgsvcs.+atgsvcs\\.js" 2074 | }, 2075 | "osCommerce": { 2076 | "website": "www.oscommerce.com", 2077 | "cats": [ 6 ], 2078 | "html": "(?:<a[^>]*(?:\\?|&)osCsid|Powered by (?:<[^>]+>)?osCommerce</a>|<[^>]+class=\"[^>]*infoBoxHeading)", 2079 | "headers": { "Set-Cookie": "osCsid=" } 2080 | }, 2081 | "osCSS": { 2082 | "website": "www.oscss.org", 2083 | "cats": [ 6 ], 2084 | "html": "<body onload=\"window\\.defaultStatus='oscss templates';\"" 2085 | }, 2086 | "Outbrain": { 2087 | "website": "outbrain.com", 2088 | "cats": [ 5 ], 2089 | "script": "widgets\\.outbrain\\.com/outbrain\\.js", 2090 | "env": "^(?:OutbrainPermaLink|OB_releaseVer)$" 2091 | }, 2092 | "OXID eShop": { 2093 | "website": "oxid-esales.com", 2094 | "cats": [ 6 ], 2095 | "html": "<!--[^-]*OXID eShop", 2096 | "env": "^ox(?:TopMenu|ModalPopup|LoginBox|InputValidator)" 2097 | }, 2098 | "PANSITE": { 2099 | "website": "panvision.de/Produkte/Content_Management/index.asp", 2100 | "cats": [ 1 ], 2101 | "meta": { "generator": "PANSITE" } 2102 | }, 2103 | "papaya CMS": { 2104 | "website": "papaya-cms.com", 2105 | "cats": [ 1 ], 2106 | "html": "<link[^>]*/papaya-themes/" 2107 | }, 2108 | "Pardot": { 2109 | "website": "pardot.com", 2110 | "cats": [ 32 ], 2111 | "html": "piProtocol + \"pi\\.pardot\\.com/pi\\.js", 2112 | "env": "^pi(?:Tracker|Hostname|Protocol|CId|AId)$" 2113 | }, 2114 | "Parse.ly": { 2115 | "website": "parse.ly", 2116 | "cats": [ 10 ], 2117 | "env": "^PARSELY$" 2118 | }, 2119 | "PayPal": { 2120 | "website": "paypal.com", 2121 | "cats": [ 41 ], 2122 | "html": "<input[^>]+_s-xclick", 2123 | "script": "paypalobjects\\.com/js", 2124 | "env": "^PAYPAL$" 2125 | }, 2126 | "PDF.js": { 2127 | "website": "mozilla.github.io/pdf.js/", 2128 | "cats": [ 19 ], 2129 | "html": "<\\/div>\\s*<!-- outerContainer -->\\s*<div\\s*id=\"printContainer\"><\\/div>", 2130 | "url": "/web/viewer\\.html?file=[^&]\\.pdf", 2131 | "env": "^PDFJS$" 2132 | }, 2133 | "Percussion": { 2134 | "website": "percussion.com", 2135 | "cats": [ 1 ], 2136 | "meta": { "generator": "(?:Percussion|Rhythmyx)" }, 2137 | "html": "<[^>]+class=\"perc-region\"" 2138 | }, 2139 | "PerfSONAR-PS": { 2140 | "website": "psps.perfsonar.net", 2141 | "cats": [ 19 ], 2142 | "headers": { "User-agent": "perfSONAR-PS/?([\\d\\.]+)?\\;version:\\1" } 2143 | }, 2144 | "Perl": { 2145 | "website": "perl.org", 2146 | "cats": [ 27 ], 2147 | "url": "\\.pl(?:$|\\?)" 2148 | }, 2149 | "Phaser": { 2150 | "website": "phaser.io", 2151 | "cats": [ 12 ], 2152 | "env": "Phaser" 2153 | }, 2154 | "PHP": { 2155 | "website": "php.net", 2156 | "cats": [ 27 ], 2157 | "headers": { "Server": "php/?([\\d.]+)?\\;confidence:40\\;version:\\1", "X-Powered-By": "php/?([\\d.]+)?\\;confidence:40\\;version:\\1", "Set-Cookie": "PHPSESSID" }, 2158 | "url": "\\.php(?:$|\\?)" 2159 | }, 2160 | "phpAlbum": { 2161 | "website": "phpalbum.net", 2162 | "cats": [ 7 ], 2163 | "html": "<!--phpalbum ([.\\d\\s]+)-->\\;version:\\1", 2164 | "implies": "PHP" 2165 | }, 2166 | "phpBB": { 2167 | "website": "phpbb.com", 2168 | "cats": [ 2 ], 2169 | "meta": { "copyright": "phpBB Group" }, 2170 | "html": "(?:Powered by <a[^>]+phpbb|<a[^>]+phpbb[^>]+class=\\.copyright|\tphpBB style name|<[^>]+styles/(?:sub|pro)silver/theme|<img[^>]+i_icon_mini|<table class=\"forumline)", 2171 | "env": "^(?:style_cookie_settings|phpbb_)", 2172 | "headers": { "Set-Cookie": "^phpbb" }, 2173 | "implies": "PHP" 2174 | }, 2175 | "phpCMS": { 2176 | "website": "phpcms.de", 2177 | "cats": [ 1 ], 2178 | "env": "^phpcms", 2179 | "implies": "PHP" 2180 | }, 2181 | "phpDocumentor": { 2182 | "website": "www.phpdoc.org", 2183 | "cats": [ 4 ], 2184 | "html": "<!-- Generated by phpDocumentor", 2185 | "implies": "PHP" 2186 | }, 2187 | "PHP-Fusion": { 2188 | "website": "www.php-fusion.co.uk", 2189 | "cats": [ 1 ], 2190 | "html": "Powered by <a href=\"[^>]+php-fusion", 2191 | "implies": "PHP" 2192 | }, 2193 | "phpMyAdmin": { 2194 | "website": "www.phpmyadmin.net", 2195 | "cats": [ 3 ], 2196 | "html": "(?:PMA_sendHeaderLocation\\(|<title>phpMyAdmin</title>)", 2197 | "env": "pma_absolute_uri", 2198 | "implies": [ "PHP", "MySQL" ] 2199 | }, 2200 | "PHP-Nuke": { 2201 | "website": "phpnuke.org", 2202 | "cats": [ 2 ], 2203 | "meta": { "generator": "PHP-Nuke" }, 2204 | "html": "<[^>]+Powered by PHP-Nuke" 2205 | }, 2206 | "phpPgAdmin": { 2207 | "website": "phppgadmin.sourceforge.net", 2208 | "cats": [ 3 ], 2209 | "html": "(?:<title>phpPgAdmin</title>|<span class=\"appname\">phpPgAdmin)", 2210 | "implies": "PHP" 2211 | }, 2212 | "phpSQLiteCMS": { 2213 | "website": "phpsqlitecms.net", 2214 | "cats": [ 1 ], 2215 | "meta": { "generator": "^phpSQLiteCMS(?: (.+))?$\\;version:\\1" }, 2216 | "implies": [ "PHP", "SQLite\\;confidence:50" ] 2217 | }, 2218 | "phpwind": { 2219 | "website": "www.phpwind.net", 2220 | "cats": [ 1, 2 ], 2221 | "meta": { "generator": "^phpwind" }, 2222 | "html": "Powered by <a href=\"[^\"]+phpwind\\.net", 2223 | "implies": "PHP" 2224 | }, 2225 | "Piwik": { 2226 | "website": "piwik.org", 2227 | "cats": [ 10 ], 2228 | "script": "piwik\\.js|piwik\\.php", 2229 | "html": "var piwikTracker = Piwik\\.getTracker\\(", 2230 | "env": [ "^Piwik$", "^_paq$" ] 2231 | }, 2232 | "Plentymarkets": { 2233 | "website": "plentymarkets.eu", 2234 | "cats": [ 6 ], 2235 | "meta": { "generator": "plentymarkets" } 2236 | }, 2237 | "Plesk": { 2238 | "website": "parallels.com/products/plesk", 2239 | "cats": [ 9 ], 2240 | "headers": { "X-Powered-By-Plesk": "Plesk", "X-Powered-By": "PleskLin" }, 2241 | "script": "common\\.js\\?plesk" 2242 | }, 2243 | "Pligg": { 2244 | "website": "pligg.com", 2245 | "cats": [ 1 ], 2246 | "meta": { "generator": "Pligg" }, 2247 | "html": "<span[^>]+id=\"xvotes-0", 2248 | "env": "^pligg_" 2249 | }, 2250 | "Plone": { 2251 | "website": "plone.org", 2252 | "cats": [ 1 ], 2253 | "meta": { "generator": "Plone" }, 2254 | "implies": "Python" 2255 | }, 2256 | "Plura": { 2257 | "website": "www.pluraprocessing.com", 2258 | "cats": [ 19 ], 2259 | "html": "<iframe src=\"[^>]+pluraserver\\.com" 2260 | }, 2261 | "Po.st": { 2262 | "website": "www.po.st/", 2263 | "cats": [ 5 ], 2264 | "env": "^pwidget_config$" 2265 | }, 2266 | "Polymer": { 2267 | "website": "polymer-project.org", 2268 | "cats": [ 12 ], 2269 | "env": "^Polymer$", 2270 | "html": "(?:<(?:polymer-)[^>]+|<link[^>]+(?:rel=\"import\")+(?:(?:.*)/polymer.html\"))", 2271 | "script": "polymer\\.js" 2272 | }, 2273 | "Posterous": { 2274 | "website": "posterous.com", 2275 | "cats": [ 1, 11 ], 2276 | "html": "<div class=\"posterous", 2277 | "env": "^Posterous" 2278 | }, 2279 | "Powergap": { 2280 | "website": "powergap.de", 2281 | "cats": [ 6 ], 2282 | "html": "(s\\d\\d)\\.php\\?shopid=\\1" 2283 | }, 2284 | "Prefix-Free": { 2285 | "website": "leaverou.github.io/prefixfree/", 2286 | "cats": [ 19 ], 2287 | "script": "prefixfree\\.js", 2288 | "env": "^PrefixFree$" 2289 | }, 2290 | "Prestashop": { 2291 | "website": "www.prestashop.com", 2292 | "cats": [ 6 ], 2293 | "meta": { "generator": "PrestaShop" }, 2294 | "html": "Powered by <a\\s+[^>]+>PrestaShop", 2295 | "implies": "PHP" 2296 | }, 2297 | "prettyPhoto": { 2298 | "website": "no-margin-for-errors.com/projects/prettyphoto-jquery-lightbox-clone/", 2299 | "cats": [ 7, 12 ], 2300 | "script": "jquery\\.prettyPhoto\\.js", 2301 | "html": "(?:<link [^>]*href=\"[^\"]*prettyPhoto(\\.min)?\\.css|<a [^>]*rel=\"prettyPhoto)", 2302 | "env": "pp_(?:alreadyInitialized|descriptions|images|titles)", 2303 | "implies": "jQuery" 2304 | }, 2305 | "Project Wonderful": { 2306 | "website": "projectwonderful.com", 2307 | "cats": [ 36 ], 2308 | "html": "<div[^>]+id=\"pw_adbox_", 2309 | "script": "^https?://(?:www\\.)?projectwonderful\\.com/(?:pwa\\.js|gen\\.php)", 2310 | "env": "^pw_adloader$" 2311 | }, 2312 | "Prototype": { 2313 | "website": "www.prototypejs.org", 2314 | "cats": [ 12 ], 2315 | "script": "(?:prototype|protoaculous)(?:-([\\d.]*[\\d]))?.*\\.js\\;version:\\1", 2316 | "env": "^Prototype$" 2317 | }, 2318 | "Protovis": { 2319 | "website": "mbostock.github.com/protovis", 2320 | "cats": [ 25 ], 2321 | "script": "protovis.*\\.js", 2322 | "env": "^protovis$" 2323 | }, 2324 | "punBB": { 2325 | "website": "punbb.informer.com", 2326 | "cats": [ 2 ], 2327 | "html": "Powered by <a href=\"[^>]+punbb", 2328 | "implies": "PHP" 2329 | }, 2330 | "Python": { 2331 | "website": "python.org", 2332 | "cats": [ 27 ], 2333 | "headers": { "Server": "(?:^|\\s)Python(?:/([\\d.]+))?\\;confidence:50\\;version:\\1" } 2334 | }, 2335 | "Quantcast": { 2336 | "website": "www.quantcast.com", 2337 | "cats": [ 10 ], 2338 | "script": "edge\\.quantserve\\.com/quant\\.js", 2339 | "env": "^quantserve$" 2340 | }, 2341 | "Quick.Cart": { 2342 | "website": "opensolution.org", 2343 | "cats": [ 6 ], 2344 | "meta": { "generator": "Quick\\.Cart(?: v([\\d.]+))?\\;version:\\1" }, 2345 | "html": "<a href=\"[^>]+opensolution\\.org/\">(?:Shopping cart by|Sklep internetowy)" 2346 | }, 2347 | "Quick.CMS": { 2348 | "website": "opensolution.org", 2349 | "cats": [ 1 ], 2350 | "meta": { "generator": "Quick\\.CMS(?: v([\\d.]+))?\\;version:\\1" }, 2351 | "html": "<a href=\"[^>]+opensolution\\.org/\">CMS by" 2352 | }, 2353 | "RackCache": { 2354 | "website": "github.com/rtomayko/rack-cache", 2355 | "cats": [ 23 ], 2356 | "headers": { "X-Rack-Cache": ".+" }, 2357 | "implies": "Ruby" 2358 | }, 2359 | "Raphael": { 2360 | "website": "raphaeljs.com", 2361 | "cats": [ 25 ], 2362 | "script": "raphael.*\\.js", 2363 | "env": "^Raphael$" 2364 | }, 2365 | "RBS Change": { 2366 | "website": "www.rbschange.fr", 2367 | "cats": [ 1, 6 ], 2368 | "html": "<html[^>]+xmlns:change=", 2369 | "meta": { "generator": "RBS Change" }, 2370 | "implies": "PHP" 2371 | }, 2372 | "RCMS": { 2373 | "website": "www.rcms.fi", 2374 | "cats": [ 1 ], 2375 | "meta": { "generator": "^(?:RCMS|ReallyCMS)" } 2376 | }, 2377 | "React": { 2378 | "website": "facebook.github.io/react", 2379 | "cats": [ 12 ], 2380 | "script": [ "react(?:\\-with\\-addons)?(?:\\-|\\.)([\\d.]*\\d)[^/]*\\.js\\;version:\\1", "/([\\d.]+)/react(\\.min)?\\.js\\;version:\\1", "react.*\\.js" ], 2381 | "env": "^React$" 2382 | }, 2383 | "reCAPTCHA": { 2384 | "website": "recaptcha.net", 2385 | "cats": [ 16 ], 2386 | "script": "(?:api-secure\\.recaptcha\\.net|recaptcha_ajax\\.js)", 2387 | "html": "(?:<div[^>]+id=\"recaptcha_image|<link[^>]+recaptcha|document\\.getElementById\\(?:'recaptcha)", 2388 | "env": "^Recaptcha$" 2389 | }, 2390 | "Red Hat": { 2391 | "website": "redhat.com", 2392 | "cats": [ 28 ], 2393 | "headers": { "Server": "Red Hat", "X-Powered-By": "Red Hat" } 2394 | }, 2395 | "Reddit": { 2396 | "website": "code.reddit.com", 2397 | "cats": [ 2 ], 2398 | "html": "(?:<a[^>]+Powered by Reddit|powered by <a[^>]+>reddit<)", 2399 | "url": "^(?:www\\.)?reddit\\.com", 2400 | "env": "^reddit$", 2401 | "implies": "Python" 2402 | }, 2403 | "Redmine": { 2404 | "website": "www.redmine.org", 2405 | "cats": [ 13 ], 2406 | "meta": { "description": "Redmine" }, 2407 | "html": "Powered by <a href=\"[^>]+Redmine", 2408 | "implies": "Ruby on Rails" 2409 | }, 2410 | "Reinvigorate": { 2411 | "website": "www.reinvigorate.net", 2412 | "cats": [ 10 ], 2413 | "env": "^reinvigorate$" 2414 | }, 2415 | "RequireJS": { 2416 | "website": "requirejs.org", 2417 | "cats": [ 12 ], 2418 | "script": "require.*\\.js", 2419 | "env": "^requirejs$" 2420 | }, 2421 | "Reveal.js": { 2422 | "website": "lab.hakim.se/reveal-js", 2423 | "cats": [ 12 ], 2424 | "script": "reveal(?:\\.min)?\\.js", 2425 | "env": "^Reveal$" 2426 | }, 2427 | "RiteCMS": { 2428 | "website": "ritecms.com", 2429 | "cats": [ 1 ], 2430 | "meta": { "generator": "^RiteCMS(?: (.+))?\\;version:\\1" }, 2431 | "implies": [ "PHP", "SQLite\\;confidence:50" ] 2432 | }, 2433 | "RoundCube": { 2434 | "website": "roundcube.net", 2435 | "cats": [ 30 ], 2436 | "html": "<title>RoundCube", 2437 | "env": "^(?:rcmail|rcube_|roundcube)", 2438 | "implies": "PHP" 2439 | }, 2440 | "Ruby": { 2441 | "website": "ruby-lang.org", 2442 | "cats": [ 27 ], 2443 | "headers": { "Server": "(?:Mongrel|WEBrick|Ruby)" } 2444 | }, 2445 | "Ruby on Rails": { 2446 | "website": "rubyonrails.org", 2447 | "cats": [ 18 ], 2448 | "script": "/assets/application-[a-z\\d]{32}/\\.js\\;confidence:50", 2449 | "meta": { "csrf-param": "authenticity_token\\;confidence:50" }, 2450 | "headers": { "Server": "(?:mod_rails|mod_rack|Phusion(?:\\.|_)Passenger)\\;confidence:50", "X-Powered-By": "(?:mod_rails|mod_rack|Phusion(?:\\.|_)Passenger)\\;confidence:50" }, 2451 | "implies": "Ruby" 2452 | }, 2453 | "S.Builder": { 2454 | "website": "www.sbuilder.ru", 2455 | "cats": [ 1 ], 2456 | "meta": { "generator": "S\\.Builder" } 2457 | }, 2458 | "Serendipity": { 2459 | "website": "s9y.org", 2460 | "cats": [ 1, 11 ], 2461 | "meta": { "generator": "Serendipity", "Powered-By": "Serendipity v\\.(.+)\\;version:\\1" }, 2462 | "implies": "PHP" 2463 | }, 2464 | "SAP": { 2465 | "website": "sap.com", 2466 | "cats": [ 22 ], 2467 | "headers": { "Server": "SAP NetWeaver Application Server" } 2468 | }, 2469 | "Sarka-SPIP": { 2470 | "website": "sarka-spip.net", 2471 | "cats": [ 1 ], 2472 | "meta": { "generator": "Sarka-SPIP(?:\\s([\\d.]+))?\\;version:\\1" }, 2473 | "implies": "SPIP" 2474 | }, 2475 | "Scala": { 2476 | "website": "www.scala-lang.org", 2477 | "cats": [ 27 ] 2478 | }, 2479 | "script.aculo.us": { 2480 | "website": "script.aculo.us", 2481 | "cats": [ 12 ], 2482 | "script": "(?:scriptaculous|protoaculous)\\.js", 2483 | "env": "^Scriptaculous$" 2484 | }, 2485 | "SDL Tridion": { 2486 | "website": "www.sdl.com/products/tridion", 2487 | "cats": [ 1 ], 2488 | "html": "mfinfo\\.application='Tridion" 2489 | }, 2490 | "Sencha Touch": { 2491 | "website": "sencha.com/products/touch", 2492 | "cats": [ 12, 26 ], 2493 | "script": "sencha-touch.*\\.js" 2494 | }, 2495 | "Sentinel Protection Server": { 2496 | "website": "www.safenet-inc.com/software-monetization/sentinel-rms/", 2497 | "cats": [ 22 ], 2498 | "headers": { "Server": "SentinelProtectionServer\\/?([\\d\\.]+)?\\;version:\\1" } 2499 | }, 2500 | "Sentinel Keys Server": { 2501 | "website": "www.safenet-inc.com/software-monetization/sentinel-rms", 2502 | "cats": [ 22 ], 2503 | "headers": { "Server": "SentinelKeysServer\\/?([\\d\\.]+)?\\;version:\\1" } 2504 | }, 2505 | "Sentinel License Monitor": { 2506 | "website": "www.safenet-inc.com/software-monetization/sentinel-rms/", 2507 | "cats": [ 19 ], 2508 | "html": "<title>Sentinel (Keys )?License Monitor</title>" 2509 | }, 2510 | "Seoshop": { 2511 | "website": "getseoshop.com", 2512 | "cats": [ 6 ], 2513 | "html": "http://www\\.getseoshop\\.com" 2514 | }, 2515 | "Shadow": { 2516 | "website": "shadow-technologies.co.uk", 2517 | "cats": [ 18 ], 2518 | "headers": { "X-Powered-By": "ShadowFramework" }, 2519 | "implies": "PHP" 2520 | }, 2521 | "ShareThis": { 2522 | "website": "sharethis.com", 2523 | "cats": [ 5 ], 2524 | "script": "w\\.sharethis\\.com/", 2525 | "env": "^SHARETHIS$" 2526 | }, 2527 | "Shopalize": { 2528 | "website": "shopalize.com", 2529 | "cats": [ 5, 10 ], 2530 | "env": "^Shopalize$" 2531 | }, 2532 | "Shopatron": { 2533 | "website": "ecommerce.shopatron.com", 2534 | "cats": [ 6 ], 2535 | "html": [ "<body class=\"shopatron", "<img[^>]+mediacdn\\.shopatron\\.com\\;confidence:50" ], 2536 | "script": "mediacdn\\.shopatron\\.com", 2537 | "meta": { "keywords": "Shopatron" }, 2538 | "env": "^shptUrl$" 2539 | }, 2540 | "Shopify": { 2541 | "website": "shopify.com", 2542 | "cats": [ 6 ], 2543 | "html": "<link[^>]+=cdn\\.shopify\\.com", 2544 | "env": "^Shopify$" 2545 | }, 2546 | "Shopware": { 2547 | "website": "shopware.com", 2548 | "cats": [ 6 ], 2549 | "meta": { "application-name": "Shopware" }, 2550 | "script": "shopware\\.js", 2551 | "implies": "PHP" 2552 | }, 2553 | "sIFR": { 2554 | "website": "www.mikeindustries.com/blog/sifr", 2555 | "cats": [ 17 ], 2556 | "script": "sifr\\.js" 2557 | }, 2558 | "Silva": { 2559 | "website": "silvacms.org", 2560 | "cats": [ 1 ], 2561 | "headers": { "X-Powered-By": "SilvaCMS" } 2562 | }, 2563 | "SilverStripe": { 2564 | "website": "www.silverstripe.org", 2565 | "cats": [ 1 ], 2566 | "meta": { "generator": "SilverStripe" }, 2567 | "html": "Powered by <a href=\"[^>]+SilverStripe" 2568 | }, 2569 | "Site Meter": { 2570 | "website": "www.sitemeter.com", 2571 | "cats": [ 10 ], 2572 | "script": "sitemeter\\.com/js/counter\\.js\\?site=" 2573 | }, 2574 | "SiteCatalyst": { 2575 | "website": "www.omniture.com\/en\/products\/online_analytics\/sitecatalyst", 2576 | "cats": [ 10 ], 2577 | "script": "\/s_code\\.js", 2578 | "html": "var s_code=s\\.t\\(\\);if\\(s_code\\)document\\.write\\(s_code\\)", 2579 | "env": "^s_account$" 2580 | }, 2581 | "SiteEdit": { 2582 | "website": "www.siteedit.ru", 2583 | "cats": [ 1 ], 2584 | "meta": { "generator": "SiteEdit" } 2585 | }, 2586 | "Smart Ad Server": { 2587 | "website": "smartadserver.com", 2588 | "cats": [ 36 ], 2589 | "env": "^SmartAdServer$", 2590 | "html": "<img[^>]+smartadserver\\.com\\/call" 2591 | }, 2592 | "Smartstore": { 2593 | "website": "smartstore.com", 2594 | "cats": [ 6 ], 2595 | "script": "smjslib\\.js" 2596 | }, 2597 | "SMF": { 2598 | "website": "www.simplemachines.org", 2599 | "cats": [ 2 ], 2600 | "env": "^smf_", 2601 | "implies": "PHP" 2602 | }, 2603 | "sNews": { 2604 | "website": "snewscms.com", 2605 | "cats": [ 1 ], 2606 | "meta": { "generator": "sNews" } 2607 | }, 2608 | "Snap.svg": { 2609 | "website": "snapsvg.io", 2610 | "cats": [ 12 ], 2611 | "script": "snap\\.svg(-min)?\\.js", 2612 | "env": "^Snap$" 2613 | }, 2614 | "Snoobi": { 2615 | "website": "www.snoobi.com", 2616 | "cats": [ 10 ], 2617 | "script": "snoobi\\.com/snoop\\.php", 2618 | "env": "^snoobi$" 2619 | }, 2620 | "SOBI 2": { 2621 | "website": "www.sigsiu.net/sobi2.html", 2622 | "cats": [ 19 ], 2623 | "html": "(?:<!-- start of Sigsiu Online Business Index|<div[^>]* class=\"sobi2)", 2624 | "implies": "Joomla" 2625 | }, 2626 | "SobiPro": { 2627 | "website": "sigsiu.net/sobipro.html", 2628 | "cats": [ 19 ], 2629 | "env": "^SobiProUrl$", 2630 | "html": " <(?:script|link)[^>].*com_sobipro.*>", 2631 | "implies": "Joomla" 2632 | }, 2633 | "SoundManager": { 2634 | "website": "www.schillmania.com/projects/soundmanager2", 2635 | "cats": [ 12 ], 2636 | "env": "^(?:SoundManager|BaconPlayer)$" 2637 | }, 2638 | "SPDY": { 2639 | "website": "chromium.org/spdy", 2640 | "cats": [ 19 ], 2641 | "headers": { "X-Firefox-Spdy": ".*" } 2642 | }, 2643 | "Sphinx": { 2644 | "website": "sphinx.pocoo.org", 2645 | "cats": [ 4 ], 2646 | "env": "^DOCUMENTATION_OPTIONS$", 2647 | "implies": "Python" 2648 | }, 2649 | "SPIP": { 2650 | "website": "www.spip.net", 2651 | "cats": [ 1 ], 2652 | "meta": { "generator": "(^|\\s)SPIP(?:\\s([\\d.]+(?:\\s\\[\\d+\\])?))?\\;version:\\1" }, 2653 | "headers": { "X-Spip-Cache": ".*" } 2654 | }, 2655 | "Spree": { 2656 | "website": "spreecommerce.com", 2657 | "cats": [ 6 ], 2658 | "html": "(<link[^>]*/assets/store/all-[a-z0-9]{32}\\.css[^>]+>|<script>\\s*Spree\\.(routes|translations|api_key))", 2659 | "implies": "Ruby on Rails" 2660 | }, 2661 | "SQL Buddy": { 2662 | "website": "www.sqlbuddy.com", 2663 | "cats": [ 3 ], 2664 | "html": "(?:<title>SQL Buddy</title>|<[^>]+onclick=\"sideMainClick\\(\"home\\.php)" 2665 | }, 2666 | "SQLite": { 2667 | "website": "www.sqlite.org", 2668 | "cats": [ 34 ] 2669 | }, 2670 | "Squarespace": { 2671 | "website": "www.squarespace.com", 2672 | "cats": [ 1 ], 2673 | "headers": { "X-ServedBy": "squarespace" }, 2674 | "env": "^Squarespace" 2675 | }, 2676 | "Squiz Matrix": { 2677 | "website": "squiz.net", 2678 | "cats": [ 1 ], 2679 | "meta": { "generator": "Squiz Matrix" }, 2680 | "html": " Running (?:MySource|Squiz) Matrix", 2681 | "headers": { "X-Powered-By": "Squiz Matrix" }, 2682 | "implies": "PHP" 2683 | }, 2684 | "StatCounter": { 2685 | "website": "www.statcounter.com", 2686 | "cats": [ 10 ], 2687 | "script": "statcounter\\.com/counter/counter" 2688 | }, 2689 | "Store Systems": { 2690 | "website": "store-systems.de", 2691 | "cats": [ 6 ], 2692 | "html": "Shopsystem von <a href=[^>]+store-systems\\.de\"|\\.mws_boxTop" 2693 | }, 2694 | "Stripe": { 2695 | "website": "stripe.com", 2696 | "cats": [ 41 ], 2697 | "html": "<input[^>]+data-stripe", 2698 | "script": "js\\.stripe\\.com", 2699 | "env": "^Stripe$" 2700 | }, 2701 | "SublimeVideo": { 2702 | "website": "sublimevideo.net", 2703 | "cats": [ 14 ], 2704 | "script": "cdn\\.sublimevideo\\.net/js/[a-z\\d]+\\.js", 2705 | "env": "^sublimevideo$" 2706 | }, 2707 | "Subrion": { 2708 | "website": "subrion.com", 2709 | "cats": [ 1 ], 2710 | "meta": { "generator": "^Subrion " }, 2711 | "headers": { "X-Powered-CMS": "Subrion CMS" }, 2712 | "implies": "PHP" 2713 | }, 2714 | "SunOS": { 2715 | "website": "oracle.com/solaris", 2716 | "cats": [ 28 ], 2717 | "headers": { "Server": "SunOS( [\\d\\.]+)?\\;version:\\1", "Servlet-engine": "SunOS( [\\d\\.]+)?\\;version:\\1" } 2718 | }, 2719 | "Supersized": { 2720 | "website": "buildinternet.com/project/supersized", 2721 | "cats": [ 7, 25 ], 2722 | "script": "supersized(?:\\.([\\d.]*[\\d]))?.*\\.js\\;version:\\1" 2723 | }, 2724 | "SUSE": { 2725 | "website": "suse.com", 2726 | "cats": [ 28 ], 2727 | "headers": { "Server": "SUSE(?:/?\\s?-?([\\d.]+))?\\;version:\\1", "X-Powered-By": "SUSE(?:/?\\s?-?([\\d.]+))?\\;version:\\1" } 2728 | }, 2729 | "Scientific Linux": { 2730 | "website": "scientificlinux.org", 2731 | "cats": [ 28 ], 2732 | "headers": { "Server": "Scientific Linux", "X-Powered-By": "Scientific Linux" } 2733 | }, 2734 | "Splunk": { 2735 | "website": "splunk.com", 2736 | "cats": [ 19 ], 2737 | "meta": { "author": "Splunk Inc\\;confidence:50" }, 2738 | "html": "<p class=\"footer\">&copy; [-0-9]+ Splunk Inc.(?: Splunk ([\\d\\.]+( build [\\d\\.]*\\d)?))?[^<]*</p>\\;version:\\1" 2739 | }, 2740 | "Splunkd": { 2741 | "website": "splunk.com", 2742 | "cats": [ 22 ], 2743 | "headers": { "Server": "Splunkd" } 2744 | }, 2745 | "SWFObject": { 2746 | "website": "blog.deconcept.com/swfobject", 2747 | "cats": [ 19 ], 2748 | "script": "swfobject.*\\.js", 2749 | "env": "^SWFObject$" 2750 | }, 2751 | "swift.engine": { 2752 | "website": "mittec.ru/default", 2753 | "cats": [ 1 ], 2754 | "headers": { "X-Powered-By": "swift\\.engine" } 2755 | }, 2756 | "Swiftlet": { 2757 | "website": "swiftlet.org", 2758 | "cats": [ 18 ], 2759 | "meta": { "generator": "Swiftlet" }, 2760 | "html": "Powered by <a href=\"[^>]+Swiftlet", 2761 | "headers": { "X-Swiftlet-Cache": ".*", "X-Powered-By": "Swiftlet", "X-Generator": "Swiftlet" }, 2762 | "implies": "PHP" 2763 | }, 2764 | "Textpattern CMS": { 2765 | "website": "textpattern.com", 2766 | "cats": [ 1 ], 2767 | "meta": { "generator": "Textpattern" } 2768 | }, 2769 | "three.js": { 2770 | "website": "threejs.org", 2771 | "cats": [ 25 ], 2772 | "script": "three(?:\\.min)?\\.js", 2773 | "env": "^THREE$" 2774 | }, 2775 | "Tiki Wiki CMS Groupware": { 2776 | "website": "tiki.org", 2777 | "cats": [ 1, 2, 8, 11, 13 ], 2778 | "script": "(?:/|_)tiki", 2779 | "meta": { "generator": "^Tiki" } 2780 | }, 2781 | "Timeplot": { 2782 | "website": "www.simile-widgets.org/timeplot/", 2783 | "cats": [ 25 ], 2784 | "script": "timeplot.*\\.js", 2785 | "env": "^Timeplot$" 2786 | }, 2787 | "TinyMCE": { 2788 | "website": "tinymce.com", 2789 | "cats": [ 24 ], 2790 | "env": "^tinyMCE$" 2791 | }, 2792 | "Titan": { 2793 | "website": "titan360.com", 2794 | "cats": [ 36 ], 2795 | "env": [ "^titan$", "^titanEnabled$" ], 2796 | "html": "<script[^>]+>var titan" 2797 | }, 2798 | "Tealeaf": { 2799 | "website": "www.tealeaf.com", 2800 | "cats": [ 10 ], 2801 | "env": "^TeaLeaf$" 2802 | }, 2803 | "Tengine": { 2804 | "website": "tengine.taobao.org", 2805 | "cats": [ 22 ], 2806 | "headers": { "Server": "Tengine" } 2807 | }, 2808 | "TomatoCart": { 2809 | "website": "tomatocart.com", 2810 | "cats": [ 6 ], 2811 | "meta": { "generator": "TomatoCart" }, 2812 | "env": "^AjaxShoppingCart$" 2813 | }, 2814 | "Trac": { 2815 | "website": "trac.edgewall.org", 2816 | "cats": [ 13 ], 2817 | "html": "<a id=\"tracpowered", 2818 | "implies": "Python" 2819 | }, 2820 | "Tumblr": { 2821 | "website": "www.tumblr.com", 2822 | "cats": [ 11 ], 2823 | "html": "<iframe src=\"[^>]+tumblr\\.com", 2824 | "url": "^https?://(?:www\\.)?[^/]+\\.tumblr\\.com/", 2825 | "headers": { "X-Tumblr-User": ".*" } 2826 | }, 2827 | "TWiki": { 2828 | "website": "twiki.org", 2829 | "cats": [ 8 ], 2830 | "headers": { "Set-cookie": "TWIKISID" }, 2831 | "script": "(TWikiJavascripts|twikilib(\\.js|\\.min\\.js))", 2832 | "html": "This site is powered by the TWiki collaboration platform" 2833 | }, 2834 | "Twilight CMS": { 2835 | "website": "www.twilightcms.com", 2836 | "cats": [ 1 ], 2837 | "headers": { "X-Powered-CMS": "Twilight CMS" } 2838 | }, 2839 | "Twitter Bootstrap": { 2840 | "website": "getbootstrap.com", 2841 | "cats": [ 18 ], 2842 | "script": "(?:twitter\\.github\\.com/bootstrap|bootstrap(?:\\.js|\\.min\\.js))", 2843 | "html": "<link.+?href=\"[^\"]+bootstrap(\\.min)?\\.css", 2844 | "env": "^Twipsy$\\;confidence:50" 2845 | }, 2846 | "Typekit": { 2847 | "website": "typekit.com", 2848 | "cats": [ 17 ], 2849 | "script": "use\\.typekit\\.com", 2850 | "env": "^Typekit$" 2851 | }, 2852 | "TypePad": { 2853 | "website": "www.typepad.com", 2854 | "cats": [ 11 ], 2855 | "meta": { "generator": "typepad" }, 2856 | "url": "typepad\\.com" 2857 | }, 2858 | "TYPO3": { 2859 | "website": "typo3.com", 2860 | "cats": [ 1 ], 2861 | "headers": { "Set-Cookie": "fe_typo_user" }, 2862 | "meta": { "generator": "TYPO3\\s?([\\d.]+)?\\;version:\\1" }, 2863 | "html": "(?:<(?:script[^>]* src|link[^>]* href)=[^>]*fileadmin|<!--TYPO3SEARCH)", 2864 | "url": "/typo3/", 2865 | "implies": "PHP" 2866 | }, 2867 | "Ubercart": { 2868 | "website": "www.ubercart.org", 2869 | "cats": [ 6 ], 2870 | "script": "uc_cart/uc_cart_block\\.js", 2871 | "implies": "Drupal" 2872 | }, 2873 | "Ubuntu": { 2874 | "website": "ubuntu.com/business/server/overview", 2875 | "cats": [ 28 ], 2876 | "headers": { "Server": "Ubuntu", "X-Powered-By": "Ubuntu" } 2877 | }, 2878 | "uCore": { 2879 | "website": "ucore.io", 2880 | "cats": [ 1, 18 ], 2881 | "headers": { "Set-Cookie": "ucore" }, 2882 | "meta": { "generator": "uCore PHP Framework" }, 2883 | "implies": "PHP" 2884 | }, 2885 | "UIKit": { 2886 | "website": "getuikit.com", 2887 | "cats": [ 18 ], 2888 | "script": "uikit.*\\.js" 2889 | }, 2890 | "Umbraco": { 2891 | "website": "umbraco.com", 2892 | "cats": [ 1 ], 2893 | "meta": { "generator": "umbraco" }, 2894 | "headers": { "X-Umbraco-Version": "(.*)\\;version:\\1" }, 2895 | "html": "powered by <a href=[^>]+umbraco", 2896 | "implies": "Microsoft ASP.NET" 2897 | }, 2898 | "Underscore.js": { 2899 | "website": "documentcloud.github.com/underscore", 2900 | "cats": [ 12 ], 2901 | "script": "underscore.*\\.js" 2902 | }, 2903 | "UNIX": { 2904 | "website": "unix.org", 2905 | "cats": [ 28 ], 2906 | "headers": { "Server": "Unix" } 2907 | }, 2908 | "UserRules": { 2909 | "website": "www.userrules.com", 2910 | "cats": [ 13 ], 2911 | "env": "^_usrp$" 2912 | }, 2913 | "UserVoice": { 2914 | "website": "uservoice.com", 2915 | "cats": [ 13 ], 2916 | "env": "^UserVoice$" 2917 | }, 2918 | "Vanilla": { 2919 | "website": "vanillaforums.org", 2920 | "cats": [ 2 ], 2921 | "html": "<body id=\"(?:DiscussionsPage|vanilla)", 2922 | "headers": { "X-Powered-By": "Vanilla" }, 2923 | "implies": "PHP" 2924 | }, 2925 | "Varnish": { 2926 | "website": "www.varnish-cache.org", 2927 | "cats": [ 23 ], 2928 | "headers": { "X-Varnish": ".+", "X-Varnish-Age": ".+", "X-Varnish-Cache": ".+", "X-Varnish-Action": ".+", "X-Varnish-Hostname": ".+", "Via": "Varnish" } 2929 | }, 2930 | "vBulletin": { 2931 | "website": "www.vbulletin.com", 2932 | "cats": [ 2 ], 2933 | "meta": { "generator": "vBulletin" }, 2934 | "env": "^(?:vBulletin|vB_[^g])", 2935 | "implies": "PHP" 2936 | }, 2937 | "VideoJS": { 2938 | "website": "videojs.com", 2939 | "cats": [ 14 ], 2940 | "env": "^VideoJS$", 2941 | "html": "<div[^>]+class=\"video-js+\">", 2942 | "script": "zencdn\\.net/c/video\\.js" 2943 | }, 2944 | "viennaCMS": { 2945 | "website": "www.viennacms.nl", 2946 | "cats": [ 1 ], 2947 | "html": "powered by <a href=\"[^>]+viennacms" 2948 | }, 2949 | "Vignette": { 2950 | "website": "www.vignette.com", 2951 | "cats": [ 1 ], 2952 | "html": "<[^>]+=\"vgn-?ext" 2953 | }, 2954 | "Vimeo": { 2955 | "website": "vimeo.com", 2956 | "cats": [ 14 ], 2957 | "html": "(?:<(?:param|embed)[^>]+vimeo\\.com/moogaloop|<iframe[^>]player\\.vimeo\\.com)" 2958 | }, 2959 | "VirtueMart": { 2960 | "website": "virtuemart.net", 2961 | "cats": [ 6 ], 2962 | "html": "<div id=\"vmMainPage" 2963 | }, 2964 | "VisualPath": { 2965 | "website": "www.trackset.com/web-analytics-software/visualpath", 2966 | "cats": [ 10 ], 2967 | "script": "visualpath[^/]*\\.trackset\\.it/[^/]+/track/include\\.js" 2968 | }, 2969 | "VIVVO": { 2970 | "website": "vivvo.net", 2971 | "cats": [ 1 ], 2972 | "headers": { "Set-Cookie": "VivvoSessionId" }, 2973 | "env": "^vivvo" 2974 | }, 2975 | "Volusion": { 2976 | "website": "volusion.com", 2977 | "cats": [ 6 ], 2978 | "html": "/v/vspfiles(?:/.)*/css/.+\\.css" 2979 | }, 2980 | "Vox": { 2981 | "website": "www.vox.com", 2982 | "cats": [ 11 ], 2983 | "url": "\\.vox\\.com" 2984 | }, 2985 | "VP-ASP": { 2986 | "website": "www.vpasp.com", 2987 | "cats": [ 6 ], 2988 | "script": "vs350\\.js", 2989 | "html": "<a[^>]+>Powered By VP-ASP Shopping Cart</a>", 2990 | "implies": "Microsoft ASP.NET" 2991 | }, 2992 | "Vue.js": { 2993 | "website": "vuejs.org", 2994 | "cats": [ 12 ], 2995 | "script": [ "vue(?:\\-|\\.)([\\d.]*\\d)[^/]*\\.js\\;version:\\1", "/([\\d.]+)/vue(\\.min)?\\.js\\;version:\\1", "vue.*\\.js" ], 2996 | "env": "^Vue$" 2997 | }, 2998 | "W3Counter": { 2999 | "website": "www.w3counter.com", 3000 | "cats": [ 10 ], 3001 | "script": "w3counter\\.com/tracker\\.js" 3002 | }, 3003 | "W3 Total Cache": { 3004 | "website": "www.w3-edge.com/wordpress-plugins/w3-total-cache", 3005 | "cats": [ 23 ], 3006 | "html": "<!--[^>]+W3 Total Cache", 3007 | "headers": { "X-Powered-By": "W3 Total Cache(?:/([\\d.]+))?\\;version:\\1" }, 3008 | "implies": "WordPress" 3009 | }, 3010 | "Web2py": { 3011 | "website": "web2py.com", 3012 | "cats": [ 18 ], 3013 | "script": "web2py\\.js", 3014 | "headers": { "X-Powered-By": "web2py" }, 3015 | "implies": [ "Python" , "jQuery" ] 3016 | }, 3017 | "Webix": { 3018 | "website": "webix.com", 3019 | "cats": [ 12 ], 3020 | "script": [ "\bwebix.js" ], 3021 | "env": "^webix$" 3022 | }, 3023 | "Web Optimizer": { 3024 | "website": "www.web-optimizer.us", 3025 | "cats": [ 10 ], 3026 | "html": "<title [^>]*lang=\"wo\">" 3027 | }, 3028 | "webEdition": { 3029 | "website": "webedition.de/en", 3030 | "cats": [ 1 ], 3031 | "meta": { "generator": "webEdition", "DC.title": "webEdition" } 3032 | }, 3033 | "WebGUI": { 3034 | "website": "www.webgui.org", 3035 | "cats": [ 1 ], 3036 | "meta": { "generator": "WebGUI" } 3037 | }, 3038 | "WebPublisher": { 3039 | "website": "scannet.dk", 3040 | "cats": [ 1 ], 3041 | "meta": { "generator": "WEB\\|Publisher" } 3042 | }, 3043 | "Websale": { 3044 | "website": "websale.de", 3045 | "cats": [ 6 ], 3046 | "url": "/websale7/" 3047 | }, 3048 | "WebsiteBaker": { 3049 | "website": "websitebaker2.org/en/home.php", 3050 | "cats": [ 1 ], 3051 | "meta": { "generator": "WebsiteBaker" }, 3052 | "implies": [ "PHP", "MySQL" ] 3053 | }, 3054 | "WebsPlanet": { 3055 | "website": "websplanet.com", 3056 | "cats": [ 1 ], 3057 | "meta": { "generator": "WebsPlanet" } 3058 | }, 3059 | "Webtrekk": { 3060 | "website": "www.webtrekk.com", 3061 | "cats": [ 10 ], 3062 | "env": "^webtrekk" 3063 | }, 3064 | "Webtrends": { 3065 | "website": "worldwide.webtrends.com", 3066 | "cats": [ 10 ], 3067 | "html": "<img[^>]+id=\"DCSIMG\"[^>]+webtrends", 3068 | "env": "^(?:WTOptimize|WebTrends)" 3069 | }, 3070 | "Weebly": { 3071 | "website": "www.weebly.com", 3072 | "cats": [ 1 ], 3073 | "html": "<[^>]+class=\"weebly" 3074 | }, 3075 | "WikkaWiki": { 3076 | "website": "wikkawiki.org", 3077 | "cats": [ 8 ], 3078 | "meta": { "generator": "WikkaWiki" }, 3079 | "html": "Powered by <a href=\"[^>]+WikkaWiki" 3080 | }, 3081 | "Windows Server": { 3082 | "website": "microsoft.com/windowsserver", 3083 | "cats": [ 28 ], 3084 | "headers": { "Server": "Win32|Win64" } 3085 | }, 3086 | "Wink": { 3087 | "website": "winktoolkit.org", 3088 | "cats": [ 26, 12 ], 3089 | "script": "(?:_base/js/base|wink).*\\.js", 3090 | "env": "^wink$" 3091 | }, 3092 | "Wix": { 3093 | "website": "wix.com", 3094 | "cats": [ 1 ], 3095 | "script": "static\\.wix\\.com", 3096 | "headers": { "X-Wix-Dispatcher-Cache-Hit": ".+", "Set-Cookie": "Domain=\\.wix\\.com" }, 3097 | "env": "^wix(?:Events|Data|Errors)" 3098 | }, 3099 | "Wolf CMS": { 3100 | "website": "www.wolfcms.org", 3101 | "cats": [ 1 ], 3102 | "html": "(?:<a href=\"[^>]+wolfcms\\.org.+Wolf CMS.+inside|Thank you for using <a[^>]+>Wolf CMS)" 3103 | }, 3104 | "WooCommerce": { 3105 | "website": "www.woothemes.com/woocommerce", 3106 | "cats": [ 6 ], 3107 | "env": "woocommerce", 3108 | "html": "<!-- WooCommerce", 3109 | "script": "woocommerce", 3110 | "meta": { "generator": "WooCommerce ([\\d.]+)\\;version:\\1" }, 3111 | "implies": [ "WordPress", "PHP" ] 3112 | }, 3113 | "Woopra": { 3114 | "website": "www.woopra.com", 3115 | "cats": [ 10 ], 3116 | "script": "static\\.woopra\\.com" 3117 | }, 3118 | "WordPress": { 3119 | "website": "wordpress.org", 3120 | "cats": [ 1, 11 ], 3121 | "meta": { "generator": "WordPress( [\\d.]+)?\\;version:\\1" }, 3122 | "html": "<link rel=[\"']stylesheet[\"'] [^>]+wp-(?:content|includes)", 3123 | "env": "^wp_username$", 3124 | "implies": "PHP" 3125 | }, 3126 | "WordPress Super Cache": { 3127 | "website": "ocaoimh.ie/wp-super-cache/", 3128 | "cats": [ 23 ], 3129 | "html": "<!--[^>]+WP-Super-Cache", 3130 | "implies": "WordPress" 3131 | }, 3132 | "Wowza Media Server": { 3133 | "website": "www.wowza.com", 3134 | "cats": [ 38 ], 3135 | "html": "<title>Wowza Media Server \\d+ ((\\w+ Edition )?\\d+\\.[\\d\\.]+( build\\d+)?)?\\;version:\\1" 3136 | }, 3137 | "WP Rocket": { 3138 | "website": "wp-rocket.me", 3139 | "cats": [ 23 ], 3140 | "html": "<!--[^>]+WP Rocket", 3141 | "headers": { "X-Powered-By": "WP Rocket(?:/([\\d.]+))?\\;version:\\1" }, 3142 | "implies": "WordPress" 3143 | }, 3144 | "Xajax": { 3145 | "website": "xajax-project.org", 3146 | "cats": [ 12 ], 3147 | "script": "xajax_core.*\\.js" 3148 | }, 3149 | "Xanario": { 3150 | "website": "xanario.de", 3151 | "cats": [ 6 ], 3152 | "meta": { "generator": "xanario shopsoftware" } 3153 | }, 3154 | "X-Cart": { 3155 | "website": "x-cart.com", 3156 | "cats": [ 6 ], 3157 | "meta": { "generator": "X-Cart(?: (\\d+))?\\;version:\\1" }, 3158 | "headers": { "Set-Cookie": "xid=[a-z0-9]{32}(?:;|$)" }, 3159 | "html": [ "Powered by X-Cart(?: (\\d+))? <a[^>]+href=\"http://www\\.x-cart\\.com/\"[^>]*>\\;version:\\1", "<a[^>]+href=\"[^\"]*(?:\\?|&)xcart_form_id=[a-z0-9]{32}(?:&|$)" ], 3160 | "script": "/skin/common_files/modules/Product_Options/func\\.js", 3161 | "env": "^(?:xcart_web_dir|xliteConfig)$", 3162 | "implies": "PHP" 3163 | }, 3164 | "XenForo": { 3165 | "website": "xenforo.com", 3166 | "cats": [ 2 ], 3167 | "html": "(?:jQuery\\.extend\\(true, XenForo|Forum software by XenForo&trade;|<!--XF:branding)" 3168 | }, 3169 | "AT Internet Analyzer": { 3170 | "website": "atinternet.com/en", 3171 | "cats": [ 10 ], 3172 | "env": "^xtsite$" 3173 | }, 3174 | "AT Internet XiTi": { 3175 | "website": "atinternet.com/en", 3176 | "cats": [ 10 ], 3177 | "script": "xiti\\.com/hit\\.xiti", 3178 | "env": "^Xt_" 3179 | }, 3180 | "XAMPP": { 3181 | "website": "www.apachefriends.org/en/xampp.html", 3182 | "cats": [ 22 ], 3183 | "meta": { "author": "Kai Oswald Seidler\\;confidence:10" }, 3184 | "html": "<title>XAMPP( Version ([\\d\\.]+))?</title>\\;version:\\1\\;confidence:90", 3185 | "implies": [ "Apache", "MySQL", "PHP", "Perl" ] 3186 | }, 3187 | "XMB": { 3188 | "website": "www.xmbforum.com", 3189 | "cats": [ 2 ], 3190 | "html": "<!-- Powered by XMB" 3191 | }, 3192 | "XOOPS": { 3193 | "website": "xoops.org", 3194 | "cats": [ 1 ], 3195 | "meta": { "generator": "XOOPS" }, 3196 | "env": "^xoops", 3197 | "implies": "PHP" 3198 | }, 3199 | "xtCommerce": { 3200 | "website": "www.xt-commerce.com", 3201 | "cats": [ 6 ], 3202 | "meta": { "generator": "xt:Commerce" }, 3203 | "html": "<div class=\"copyright\">.+<a[^>]+>xt:Commerce" 3204 | }, 3205 | "xui": { 3206 | "website": "xuijs.com", 3207 | "cats": [ 26, 12 ], 3208 | "script": "[^a-z]xui.*\\.js", 3209 | "env": "^xui$" 3210 | }, 3211 | "YaBB": { 3212 | "website": "www.yabbforum.com", 3213 | "cats": [ 2 ], 3214 | "html": "Powered by <a href=\"[^>]+yabbforum" 3215 | }, 3216 | "Yahoo Advertising": { 3217 | "website": "advertising.yahoo.com", 3218 | "cats": [ 36 ], 3219 | "html": [ "<iframe[^>]+adserver\\.yahoo\\.com", "<img[^>]+clicks\\.beap\\.bc\\.yahoo\\.com" ], 3220 | "env": [ "^adxinserthtml$" ], 3221 | "script": [ "adinterax.com" ] 3222 | }, 3223 | "Yahoo! Ecommerce": { 3224 | "website": "smallbusiness.yahoo.com/ecommerce", 3225 | "cats": [ 6 ], 3226 | "html": "<link[^>]+store\\.yahoo\\.net", 3227 | "headers": { "X-XRDS-Location": "/ystore/" }, 3228 | "env": "^YStore$" 3229 | }, 3230 | "Yahoo! Web Analytics": { 3231 | "website": "web.analytics.yahoo.com", 3232 | "cats": [ 10 ], 3233 | "script": "d\\.yimg\\.com/mi/ywa\\.js", 3234 | "env": "^YWA$" 3235 | }, 3236 | "Yandex.Direct": { 3237 | "website": "partner.yandex.com", 3238 | "cats": [ 36 ], 3239 | "env": [ "^yandex_partner_id$", "^yandex_ad_format$", "^yandex_direct_" ], 3240 | "html": "<yatag class=\"ya-partner__ads\">", 3241 | "script": [ "https?://an\\.yandex\\.ru/" ] 3242 | }, 3243 | "Yandex.Metrika": { 3244 | "website": "metrika.yandex.com", 3245 | "cats": [ 10 ], 3246 | "html": "mc\\.yandex\\.ru\/metrika\/watch\\.js|\\b(?:yaParams|yaCounter|yandex_metrika_callbacks)\\b", 3247 | "script": "mc\\.yandex\\.ru\/metrika\/watch\\.js" 3248 | }, 3249 | "yepnope.js": { 3250 | "website": "yepnopejs.com", 3251 | "cats": [ 12 ], 3252 | "script": [ "yepnope-(?:-|\\.)([\\d.]*\\d)[^/]*\\.js\\;version:\\1", "([\\d.]+)/yepnope(\\.min)?\\.js\\;version:\\1", "yepnope.*\\.js" ], 3253 | "env": "^yepnope$" 3254 | }, 3255 | "YouTube": { 3256 | "website": "www.youtube.com", 3257 | "cats": [ 14 ], 3258 | "html": "<(?:param|embed|iframe)[^>]+youtube(?:-nocookie)?\\.com/(?:v|embed)" 3259 | }, 3260 | "YUI Doc": { 3261 | "website": "developer.yahoo.com/yui/yuidoc", 3262 | "cats": [ 4 ], 3263 | "html": "(?:<html[^>]* yuilibrary\\.com/rdf/[\\d.]+/yui\\.rdf|<body[^>]+class=\"yui3-skin-sam)" 3264 | }, 3265 | "YUI": { 3266 | "website": "yuilibrary.com", 3267 | "cats": [ 12 ], 3268 | "script": "(?:/yui/|yui\\.yahooapis\\.com)", 3269 | "env": "^YAHOO$" 3270 | }, 3271 | "Zabbix": { 3272 | "website": "zabbix.com", 3273 | "cats": [ 19 ], 3274 | "html": "zbxCallPostScripts\\(\\);", 3275 | "meta": { "Author": "ZABBIX SIA\\;confidence:70" }, 3276 | "url": "\\/zabbix\\/\\;confidence:30" 3277 | }, 3278 | "Zen Cart": { 3279 | "website": "www.zen-cart.com", 3280 | "cats": [ 6 ], 3281 | "meta": { "generator": "Zen Cart" } 3282 | }, 3283 | "Zend": { 3284 | "website": "zend.com", 3285 | "cats": [ 22 ], 3286 | "headers": { "X-Powered-By": "Zend" } 3287 | }, 3288 | "Zepto": { 3289 | "website": "zeptojs.com", 3290 | "cats": [ 12 ], 3291 | "script": "zepto.*\\.js", 3292 | "env": "^Zepto$" 3293 | }, 3294 | "Zeuscart": { 3295 | "website": "zeuscart.com", 3296 | "cats": [ 6 ], 3297 | "url": "\\?do=prodetail&action=show&prodid=\\d+", 3298 | "html": "<form name=\"product\" method=\"post\" action=\"[^\"]+\\?do=addtocart&prodid=\\d+\"(?:(?!<\\/form>).+)<input type=\"hidden\" name=\"addtocart\" value=\"\\d+\">", 3299 | "implies": "PHP" 3300 | }, 3301 | "Zinnia": { 3302 | "website": "django-blog-zinnia.com", 3303 | "cats": [ 11 ], 3304 | "meta": { "generator": "Zinnia" }, 3305 | "implies": "Django" 3306 | }, 3307 | "ZK": { 3308 | "website": "zkoss.org", 3309 | "cats": [ 18 ], 3310 | "script": "zkau/", 3311 | "html": "<!-- ZK [\\.\\d\\s]+-->", 3312 | "implies": "Java" 3313 | }, 3314 | "Zope": { 3315 | "website": "zope.org", 3316 | "cats": [ 22 ], 3317 | "headers": { "Server": "^Zope/" } 3318 | }, 3319 | "ZURB Foundation": { 3320 | "website": "foundation.zurb.com", 3321 | "cats": [ 18 ], 3322 | "html": "<link[^>]+foundation[^>\"]+css" 3323 | } 3324 | } 3325 | } 3326 | --------------------------------------------------------------------------------