1{ 2 "threshold": 100, 3 "rules": [ 4 {"func": "fromKnownBotIP", 5 "id": "botIpRange", "desc": "Common Bot IP range", 6 "bot": 50 7 }, 8 {"func": "matchesClient", "params": ["aol","msie","ffold","chromeold","oldedge","operaold"], 9 "id": "oldClient", "desc": "Obsolete browser version", 10 "bot": 40 11 }, 12 {"func": "matchesPlatform", "params": ["winold", "macosold", "androidold"], 13 "id": "oldOS", "desc": "Obsolete platform version", 14 "bot": 40 15 }, 16 {"func": "matchesPlatform", "params": ["winsrvr", "bsd"], 17 "id": "serverOS", "desc": "Server OS", 18 "bot": 40 19 }, 20 {"func": "matchesPlatform", "params": ["null"], 21 "id": "noOS", "desc": "Unknown or missing OS information", 22 "bot": 40 23 }, 24 {"func": "smallPageCount", "params": [1], 25 "id": "onePage", "desc": "Visiter viewed only a single page", 26 "bot": 30 27 }, 28 {"func": "noRecord", "params": ["log"], 29 "id": "noClient", "desc": "No client-side JS log was recorded", 30 "bot": 40 31 }, 32 {"func": "noRecord", "params": ["tck"], 33 "id": "noTicks", "desc": "No client ticks were recorded", 34 "bot": 10 35 }, 36 {"func": "noReferrer", 37 "id": "noRefs", "desc": "No referer field", 38 "bot": 30 39 }, 40 {"func": "matchesClient", "params": ["brave","operaold","msie","webkit"], 41 "id": "susClient", "desc": "Client identifier that is popular with bot networks", 42 "bot": 10 43 }, 44 {"func": "combinationTest", "params": [["macos","chromeold"],["macos","msie"],["winold","edge"],["winold","brave"]], 45 "id": "suspPC", "desc": "Suspicious combination of platform and client", 46 "bot": 30 47 }, 48 {"func": "combinationTest", "params": [["macos","msie"],["win10","safari"],["macosold","brave"]], 49 "id": "impPC", "desc": "Impossible combination of platform and client", 50 "bot": 70 51 }, 52 {"func": "loadSpeed", "params": [3, 20], 53 "id": "speedRun", "desc": "Average time between page loads is less than 20 seconds", 54 "bot": 80 55 }, 56 {"func": "noAcceptLang", 57 "id": "noAcc", "desc": "No “Accept-Language” header", 58 "bot": 40 59 }, 60 {"func": "matchLang", "params": [], 61 "id": "langMatch", "desc": "Client’s ‘Accept-Language’ header does not match the page language", 62 "bot": 30 63 } 64 ], 65 "ipRanges": [ 66 {"from": "3.0.0.0", "to": "3.255.255.254", "label": "Amazon Data Services [US]"}, 67 {"from": "5.161.0.0", "to": "5.161.255.255", "m": 16, "label": "Hetzner [US]"}, 68 {"from": "8.127.0.0", "to": "8.223.255.254", "label": "Alibaba [CN]"}, 69 {"from": "14.160.0.0", "to": "14.191.255.254", "m": 11, "label": "VNPT [VN]"}, 70 {"from": "14.192.0.0", "to": "14.255.255.254", "m": 10, "label": "VNPT [VN]"}, 71 {"from": "14.224.0.0", "to": "24.255.255.254", "m": 11, "label": "Charter [US]"}, 72 {"from": "27.106.0.0", "to": "27.106.127.254", "m": 17, "label": "Huawei [US]"}, 73 {"from": "34.0.0.0", "to": "34.191.255.254", "label": "Google LLC"}, 74 {"from": "43.132.0.0", "to": "43.132.255.254", "m": 16, "label": "Tencent [CN]"}, 75 {"from": "43.133.0.0", "to": "43.133.255.254", "m": 16, "label": "Tencent [CN]"}, 76 {"from": "45.0.0.0", "to": "45.255.255.254", "label": "Various small ISPs, mostly BR"}, 77 {"from": "46.250.160.0", "to": "46.250.191.254", "m": 19, "label": "Huawei [MX]"}, 78 {"from": "47.200.0.0", "to": "47.203.255.254", "m": 14, "label": "Frontier Communications [US]"}, 79 {"from": "49.0.192.0", "to": "49.0.255.254", "m": 18, "label": "Huawei [SG]"}, 80 {"from": "52.220.0.0", "to": "52.222.255.254", "label": "Amazon Data Services"}, 81 {"from": "66.249.64.0", "to": "66.249.95.254", "m": 19, "label": "Google LLC"}, 82 {"from": "84.37.35.0", "to": "84.37.255.254", "label": "GTT.net [US]"}, 83 {"from": "94.74.64.0", "to": "94.74.127.254", "m": 18, "label": "Huawei [HK]"}, 84 {"from": "101.0.0.0", "to": "101.255.255.254", "m": 8,"label": "ChinaNet [CN]"}, 85 {"from": "104.196.0.0", "to": "104.199.255.254", "m": 14, "label": "Google LLC"}, 86 {"from": "110.238.64.0", "to": "110.238.127.254", "m": 18, "label": "Huawei [SG]"}, 87 {"from": "111.119.192.0", "to": "111.119.255.254", "m": 18, "label": "Huawei [SG]"}, 88 {"from": "113.160.0.0", "to": "113.191.255.254", "m": 11, "label": "VNPT [VN]"}, 89 {"from": "119.8.0.0", "to": "119.8.255.254", "m": 16, "label": "Huawei [HK]"}, 90 {"from": "119.13.0.0", "to": "119.13.255.254", "m": 16, "label": "Huawei [HK]"}, 91 {"from": "121.91.168.0", "to": "121.91.175.254", "m": 21, "label": "Huawei [HK]"}, 92 {"from": "122.8.0.0", "to": "122.8.255.254", "label": "CN-ISP [CN]"}, 93 {"from": "122.9.0.0", "to": "122.9.255.254", "m": 16, "label": "Huawei [CN]"}, 94 {"from": "123.16.0.0", "to": "123.31.255.254", "m": 12, "label": "VNPT [VN]"}, 95 {"from": "124.243.128.0", "to": "124.243.191.254", "m": 18, "label": "Huawei [SG]"}, 96 {"from": "138.59.0.0", "to": "138.59.225.254", "m": 16, "label": "South-American ISPs (138.59.x)"}, 97 {"from": "138.121.0.0", "to": "138.121.225.254", "m": 16, "label": "South-American ISPs (138.121.x)"}, 98 {"from": "142.147.128.0", "to": "1142.147.255.254", "m": 17, "label": "Web2Objects LLC [US]"}, 99 {"from": "146.174.128.0", "to": "146.174.191.254", "m": 18, "label": "Huawei [SG]"}, 100 {"from": "150.40.128.0", "to": "150.40.255.254", "m": 17, "label": "Huawei [HK]"}, 101 {"from": "159.138.0.0", "to": "159.138.225.254", "m": 16, "label": "Huawei [TH]"}, 102 {"from": "162.128.0.0", "to": "162.128.255.254", "m": 16, "label": "Zenlayer [SG]"}, 103 {"from": "166.108.192.0", "to": "166.108.255.254", "m": 18, "label": "Huawei [SG]"}, 104 {"from": "168.232.192.0", "to": "168.232.255.254", "m": 16, "label": "South-American ISPs (168.232.x)"}, 105 {"from": "170.82.0.0", "to": "170.82.255.254", "m": 16, "label": "South-American ISPs (170.254.x)"}, 106 {"from": "170.254.0.0", "to": "170.254.255.254", "m": 16, "label": "South-American ISPs (170.82.x)"}, 107 {"from": "171.224.0.0", "to": "171.239.255.254", "m": 12, "label": "Viettel [VN]"}, 108 {"from": "177.0.0.0", "to": "177.255.255.254", "m": 8, "label": "BrasilNET [BR]"}, 109 {"from": "179.0.0.0", "to": "179.255.255.254", "m": 8, "label": "BrasilNET [BR]"}, 110 {"from": "183.87.32.0", "to": "183.87.63.254", "label": "Huawei [HK]"}, 111 {"from": "186.0.0.0", "to": "186.255.255.254", "m": 8, "label": "South-American ISPs (186.x)"}, 112 {"from": "187.0.0.0", "to": "187.255.255.254", "m": 8, "label": "South-American ISPs (187.x)"}, 113 {"from": "188.0.0.0", "to": "188.255.255.254", "m": 8, "label": "South-American ISPs (188.x)"}, 114 {"from": "189.0.0.0", "to": "189.255.255.254", "m": 8, "label": "South-American ISPs (189.x)"}, 115 {"from": "190.0.0.0", "to": "190.255.255.254", "m": 8, "label": "South-American ISPs (190.x)"}, 116 {"from": "191.0.0.0", "to": "191.255.255.254", "m": 8, "label": "South-American ISPs (191.x)"}, 117 {"from": "192.124.170.0", "to": "192.124.182.254", "label": "Relcom [CZ]"}, 118 {"from": "195.37.0.0", "to": "195.37.255.254", "m": 16, "label": "DFN [DE]"}, 119 {"from": "200.0.0.0", "to": "200.255.255.254", "m": 8, "label": "South-American ISPs (200.x)"}, 120 {"from": "201.0.0.0", "to": "201.255.255.254", "m": 8, "label": "South-American ISPs (201.x)"}, 121 {"from": "212.95.128.0", "to": "212.95.159.254", "m": 19, "label": "Asiacell [IQ]"}, 122 {"from": "222.252.0.0", "to": "222.252.255.254", "m": 14, "label": "VNPT [VN]"}, 123 {"from": "2001:4860::::::", "to": "2001:4860:ffff:ffff:ffff:ffff:ffff:ffff", "m": 32, "label": "Google LLC [US]"}, 124 {"from": "2001:0ee0::::::", "to": "2001:ee3:ffff:ffff:ffff:ffff:ffff:ffff", "m": 30, "label": "VNPT [VN]"}, 125 {"from": "2408:8210::::::", "to": "2408:8210:ffff:ffff:ffff:ffff:ffff:ffff", "m": 30, "label": "China Unicom [CN]"}, 126 {"from": "2600:1f00::::::", "to": "2600:1fff:ffff:ffff:ffff:ffff:ffff:ffff", "m": 24, "label": "Amazon Cloud"}, 127 {"from": "2603:6010::::::", "to": "2603:6010:ffff:ffff:ffff:ffff:ffff:ffff", "m": 32, "label": "Charter [US]"}, 128 {"from": "2603:8000::::::", "to": "2603:80ff:ffff:ffff:ffff:ffff:ffff:ffff", "m": 24, "label": "Charter [US]"}, 129 {"from": "2607:a400::::::", "to": "2607:a400:ffff:ffff:ffff:ffff:ffff:ffff", "m": 32, "label": "Zenlayer Inc. [US]"}, 130 {"from": "2804:::::::", "to": "2804:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF", "m": 16, "label": "Inspire [BR]"}, 131 {"from": "2a09:bac2::::::", "to": "2a09:bac2:0:ffff:ffff:ffff:ffff:ffff", "m": 48, "label": "Cloudflare"}, 132 {"from": "2a0a:4cc0::::::", "to": "2a0a:4cc0:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF", "label": "Netcup [DE]"} 133 ] 134}