diff --git a/data/known-bots.json b/data/known-bots.json index 2ce7df2..b91de3b 100644 --- a/data/known-bots.json +++ b/data/known-bots.json @@ -183,5 +183,23 @@ "r": ["Sogou web spider"], "rx": ["Sogou web spider\\/(\\d+\\.\\d+)[;\\s\\(\\.]"], "url": "http://www.sogou.com/docs/help/webmasters.htm#07" + }, + {"id": "amazon", + "n": "Amazonbot", + "r": ["Amazonbot"], + "rx": ["Amazonbot\\/(\\d+\\.\\d+)[;\\s\\(\\.]"], + "url": "https://developer.amazon.com/amazonbot" + }, + {"id": "sop", + "n": "SitesOverPagesBot", + "r": ["SitesOverPagesBot"], + "rx": ["SitesOverPagesBot\\/(\\d+\\.\\d+)[;\\s\\(\\.]"], + "url": "https://www.sitesoverpages.com/bot" + }, + {"id": "startme", + "n": "StartmeBot", + "r": ["StartmeBot"], + "rx": ["StartmeBot\\/(\\d+\\.\\d+)[;\\s\\(\\.]"], + "url": "https://www.sitesoverpages.com/bot" } ] \ No newline at end of file diff --git a/data/known-platforms.json b/data/known-platforms.json index a71334c..5e190be 100644 --- a/data/known-platforms.json +++ b/data/known-platforms.json @@ -25,7 +25,7 @@ }, {"n": "MacOS", "id": "macos", - "rx": [ "\\sMac OS X 10[\\._](1[4-5])[\\._;\\s\\)]", "\\sMac OS X (1[4-5])[\\._;\\s\\)]", "\\sMac OS X (2[6-9])[\\._;\\s\\)]" ] + "rx": [ "\\sMac OS X 10[\\._](1[4-6])[\\._;\\s\\)]", "\\sMac OS X (1[4-6])[\\._;\\s\\)]", "\\sMac OS X (2[6-9])[\\._;\\s\\)]" ] }, {"n": "Vintage Windows", "id": "winold", diff --git a/data/rules.json b/data/rules.json index 6124bcb..402030d 100644 --- a/data/rules.json +++ b/data/rules.json @@ -55,33 +55,34 @@ } ], "ipRanges": [ - {"from": "8.127.0.0", "to": "8.223.255.255", "isp": "Alibaba", "loc":"cn"}, - {"from": "24.240.0.0", "to": "24.243.255.255", "isp": "Charter", "loc":"us"}, - {"from": "27.106.0.0", "to": "27.106.127.255", "isp": "Huawei", "loc":"hk"}, - {"from": "34.0.0.0", "to": "34.191.255.255", "isp": "Google LLC", "loc":"zz"}, - {"from": "45.224.0.0", "to": "45.227.195.255", "isp": "Various BR ISPs", "loc": "br"}, - {"from": "46.250.160.0", "to": "46.250.191.255", "isp": "Huawei", "loc":"mx"}, - {"from": "49.0.200.0", "to": "49.0.255.255", "isp": "Huawei", "loc":"sg"}, - {"from": "94.74.64.0", "to": "94.74.127.255", "isp": "Huawei", "loc":"hk"}, - {"from": "101.0.0.0", "to": "119.255.255.255", "isp": "SinNet", "loc":"cn"}, - {"from": "111.119.192.0", "to": "111.119.255.255", "isp": "Huawei", "loc":"sg"}, - {"from": "119.0.0.0", "to": "101.207.255.255", "isp": "Unicom", "loc":"cn"}, - {"from": "121.91.168.0", "to": "121.91.175.255", "isp": "Huawei", "loc":"hk"}, - {"from": "122.8.0.0", "to": "122.8.255.255", "isp": "CN-ISP", "loc":"cn"}, - {"from": "122.9.0.0", "to": "122.9.255.255", "isp": "Huawei", "loc":"cn"}, - {"from": "124.243.128.0", "to": "124.243.191.255", "isp": "Huawei", "loc":"sg"}, - {"from": "150.40.128.0", "to": "150.40.255.255", "isp": "Huawei", "loc":"hk"}, - {"from": "159.138.0.0", "to": "159.138.225.255", "isp": "Huawei", "loc":"th"}, - {"from": "162.128.0.0", "to": "162.128.255.255", "isp": "Zenlayer", "loc":"sg"}, - {"from": "166.108.192.0", "to": "166.108.255.255", "isp": "Huawei", "loc":"sg"}, - {"from": "177.0.0.0", "to": "177.223.255.255", "isp": "THS", "loc":"br"}, - {"from": "183.87.32.0", "to": "183.87.159.255", "isp": "Huawei", "loc":"hk"}, - {"from": "187.180.0.0", "to": "187.183.255.255", "isp": "Claro", "loc":"br"}, - {"from": "188.239.0.0", "to": "188.239.63.255", "isp": "Huawei", "loc":"sg"}, - {"from": "189.1.192.0", "to": "189.1.255.255", "isp": "Huawei", "loc":"hk"}, - {"from": "189.76.0.0", "to": "189.127.255.255", "isp": "Hard Online", "loc":"br"}, - {"from": "190.92.192.0", "to": "190.92.255.255", "isp": "Huawei", "loc":"hk"}, - {"from": "2804:0:0:0:0:0:0:0", "to": "2804:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF", "isp": "Inspire", "loc":"br"}, + {"from": "8.127.0.0", "to": "8.223.255.254", "isp": "Alibaba", "loc":"cn"}, + {"from": "24.240.0.0", "to": "24.243.255.254", "isp": "Charter", "loc":"us"}, + {"from": "27.106.0.0", "to": "27.106.127.254", "isp": "Huawei", "loc":"hk"}, + {"from": "34.0.0.0", "to": "34.191.255.254", "isp": "Google LLC", "loc":"zz"}, + {"from": "45.224.0.0", "to": "45.227.195.254", "isp": "Various BR ISPs", "loc": "br"}, + {"from": "46.250.160.0", "to": "46.250.191.254", "isp": "Huawei", "loc":"mx"}, + {"from": "49.0.200.0", "to": "49.0.255.254", "isp": "Huawei", "loc":"sg"}, + {"from": "94.74.64.0", "to": "94.74.127.254", "isp": "Huawei", "loc":"hk"}, + {"from": "101.0.0.0", "to": "119.255.255.254", "isp": "SinNet", "loc":"cn"}, + {"from": "111.119.192.0", "to": "111.119.255.254", "isp": "Huawei", "loc":"sg"}, + {"from": "119.0.0.0", "to": "101.207.255.254", "isp": "Unicom", "loc":"cn"}, + {"from": "121.91.168.0", "to": "121.91.175.254", "isp": "Huawei", "loc":"hk"}, + {"from": "122.8.0.0", "to": "122.8.255.254", "isp": "CN-ISP", "loc":"cn"}, + {"from": "122.9.0.0", "to": "122.9.255.254", "isp": "Huawei", "loc":"cn"}, + {"from": "124.243.128.0", "to": "124.243.191.254", "isp": "Huawei", "loc":"sg"}, + {"from": "150.40.128.0", "to": "150.40.255.254", "isp": "Huawei", "loc":"hk"}, + {"from": "159.138.0.0", "to": "159.138.225.254", "isp": "Huawei", "loc":"th"}, + {"from": "162.128.0.0", "to": "162.128.255.254", "isp": "Zenlayer", "loc":"sg"}, + {"from": "166.108.192.0", "to": "166.108.255.254", "isp": "Huawei", "loc":"sg"}, + {"from": "177.0.0.0", "to": "177.223.255.254", "isp": "THS", "loc":"br"}, + {"from": "183.87.32.0", "to": "183.87.159.254", "isp": "Huawei", "loc":"hk"}, + {"from": "187.180.0.0", "to": "187.183.255.254", "isp": "Claro", "loc":"br"}, + {"from": "188.239.0.0", "to": "188.239.63.254", "isp": "Huawei", "loc":"sg"}, + {"from": "189.1.192.0", "to": "189.1.255.254", "isp": "Huawei", "loc":"hk"}, + {"from": "189.76.0.0", "to": "189.127.255.254", "isp": "Hard Online", "loc":"br"}, + {"from": "190.92.192.0", "to": "190.92.255.254", "isp": "Huawei", "loc":"hk"}, + {"from": "192.124.170.0", "to": "192.124.182.254", "isp": "Relcom ", "loc":"cz"}, + {"from": "2804:0000:0000:0000:0000:0000:0000:0000", "to": "2804:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF", "isp": "Inspire", "loc":"br"}, {"from": "2600:1f00:0000:0000:0000:0000:0000:0000", "to": "2600:1fff:ffff:ffff:ffff:ffff:ffff:ffff", "isp": "Amazon Cloud", "loc":"us"}, {"from": "2001:4800:0000:0000:0000:0000:0000:0000", "to": "2001:4fff:ffff:ffff:ffff:ffff:ffff:ffff", "isp": "Rackspace/Google", "loc":"us"} ] diff --git a/img/ccbot.svg b/img/ccbot.svg index 3bf9da5..b2f4567 100644 --- a/img/ccbot.svg +++ b/img/ccbot.svg @@ -1,70 +1 @@ - - - - - - - - - - - - + \ No newline at end of file diff --git a/script.js b/script.js index a7c7b9c..2b0d9e1 100644 --- a/script.js +++ b/script.js @@ -248,24 +248,24 @@ BotMon.live = { for (let i=0; i { a.seg == ipArr[i]; } ); - if (!it) { - it = {seg: ipArr[i], count: 1}; - if (i { + if (it.count <= 1) console.log(it); //arr.splice(i-1, 1) + }); + + //console.log("New array:", arr); + + }; } }, @@ -1399,8 +1413,8 @@ BotMon.live = { dl.appendChild(make('dt', {}, "IP-Address:")); dl.appendChild(make('dd', {'class': 'has_icon ip' + ipType}, data.ip)); - dl.appendChild(make('dt', {}, "ID:")); - dl.appendChild(make('dd', {'class': 'has_icon ip' + data.typ}, data.id)); + /*dl.appendChild(make('dt', {}, "ID:")); + dl.appendChild(make('dd', {'class': 'has_icon ip' + data.typ}, data.id));*/ } if (Math.abs(data._lastSeen - data._firstSeen) < 100) { @@ -1416,8 +1430,8 @@ BotMon.live = { dl.appendChild(make('dt', {}, "User-Agent:")); dl.appendChild(make('dd', {'class': 'agent'}, data.agent)); - dl.appendChild(make('dt', {}, "Visitor Type:")); - dl.appendChild(make('dd', undefined, data._type )); + /*dl.appendChild(make('dt', {}, "Visitor Type:")); + dl.appendChild(make('dd', undefined, data._type ));*/ dl.appendChild(make('dt', {}, "Seen by:")); dl.appendChild(make('dd', undefined, data._seenBy.join(', ') )); @@ -1463,49 +1477,52 @@ BotMon.live = { dl.appendChild(pagesDd); /* bot evaluation rating */ - dl.appendChild(make('dt', undefined, "Bot rating:")); - dl.appendChild(make('dd', {'class': 'bot-rating'}, data._botVal + '/' + BotMon.live.data.rules._threshold )); + if (data._type !== BM_USERTYPE.KNOWN_BOT && data._type !== BM_USERTYPE.KNOWN_USER) { + dl.appendChild(make('dt', undefined, "Bot rating:")); + dl.appendChild(make('dd', {'class': 'bot-rating'}, ( data._botVal ? data._botVal : '–' ) + '/' + BotMon.live.data.rules._threshold )); - /* add bot evaluation details: */ - if (data._eval) { - dl.appendChild(make('dt', {}, "Bot evaluation details:")); - const evalDd = make('dd'); - const testList = make('ul',{ - 'class': 'eval' - }); - data._eval.forEach( test => { + /* add bot evaluation details: */ + if (data._eval) { + dl.appendChild(make('dt', {}, "Bot evaluation details:")); + const evalDd = make('dd'); + const testList = make('ul',{ + 'class': 'eval' + }); + data._eval.forEach( test => { - const tObj = BotMon.live.data.rules.getRuleInfo(test); - let tDesc = tObj ? tObj.desc : test; + const tObj = BotMon.live.data.rules.getRuleInfo(test); + let tDesc = tObj ? tObj.desc : test; - // special case for Bot IP range test: - if (tObj.func == 'fromKnownBotIP') { - const rangeInfo = BotMon.live.data.rules.getBotIPInfo(data.ip); - if (rangeInfo) { - tDesc += ` (${rangeInfo.isp}, ${rangeInfo.loc.toUpperCase()})`; + // special case for Bot IP range test: + if (tObj.func == 'fromKnownBotIP') { + const rangeInfo = BotMon.live.data.rules.getBotIPInfo(data.ip); + if (rangeInfo) { + tDesc += ` (${rangeInfo.isp}, ${rangeInfo.loc.toUpperCase()})`; + } } - } - // create the entry field - const tstLi = make('li'); - tstLi.appendChild(make('span', { - 'data-testid': test - }, tDesc)); - tstLi.appendChild(make('span', {}, ( tObj ? tObj.bot : '—') )); - testList.appendChild(tstLi); - }); + // create the entry field + const tstLi = make('li'); + tstLi.appendChild(make('span', { + 'data-testid': test + }, tDesc)); + tstLi.appendChild(make('span', {}, ( tObj ? tObj.bot : '—') )); + testList.appendChild(tstLi); + }); - // add total row - const tst2Li = make('li', { - 'class': 'total' - }); - /*tst2Li.appendChild(make('span', {}, "Total:")); - tst2Li.appendChild(make('span', {}, data._botVal)); - testList.appendChild(tst2Li);*/ + // add total row + const tst2Li = make('li', { + 'class': 'total' + }); + /*tst2Li.appendChild(make('span', {}, "Total:")); + tst2Li.appendChild(make('span', {}, data._botVal)); + testList.appendChild(tst2Li);*/ - evalDd.appendChild(testList); - dl.appendChild(evalDd); + evalDd.appendChild(testList); + dl.appendChild(evalDd); + } } + // return the element to add to the UI: return dl; }