diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/include/ndpi_typedefs.h | 2 | ||||
-rw-r--r-- | src/lib/inc_generated/ndpi_crawlers_match.c.inc | 1015 | ||||
-rw-r--r-- | src/lib/ndpi_main.c | 92 |
3 files changed, 574 insertions, 535 deletions
diff --git a/src/include/ndpi_typedefs.h b/src/include/ndpi_typedefs.h index 51328943f..5f587e8d2 100644 --- a/src/include/ndpi_typedefs.h +++ b/src/include/ndpi_typedefs.h @@ -693,6 +693,7 @@ typedef enum { typedef enum { NDPI_PTREE_RISK_MASK = 0, NDPI_PTREE_RISK, + NDPI_PTREE_RISK6, NDPI_PTREE_PROTOCOLS, NDPI_PTREE_PROTOCOLS6, @@ -1311,6 +1312,7 @@ struct ndpi_detection_module_struct { /* Patricia trees */ ndpi_patricia_tree_t *ip_risk_mask_ptree; ndpi_patricia_tree_t *ip_risk_ptree; + ndpi_patricia_tree_t *ip_risk_ptree6; ndpi_patricia_tree_t *protocols_ptree; /* IP-based protocol detection */ ndpi_patricia_tree_t *protocols_ptree6; diff --git a/src/lib/inc_generated/ndpi_crawlers_match.c.inc b/src/lib/inc_generated/ndpi_crawlers_match.c.inc index 1179c0a9b..0875e289b 100644 --- a/src/lib/inc_generated/ndpi_crawlers_match.c.inc +++ b/src/lib/inc_generated/ndpi_crawlers_match.c.inc @@ -932,6 +932,7 @@ static ndpi_network ndpi_http_crawler_bot_protocol_list[] = { { 0x39905400 /* 57.144.84.0/23 */, 23, NDPI_HTTP_CRAWLER_BOT }, { 0x39900C00 /* 57.144.12.0/23 */, 23, NDPI_HTTP_CRAWLER_BOT }, { 0x39904A00 /* 57.144.74.0/23 */, 23, NDPI_HTTP_CRAWLER_BOT }, + { 0x66846800 /* 102.132.104.0/24 */, 24, NDPI_HTTP_CRAWLER_BOT }, { 0xB959DB00 /* 185.89.219.0/24 */, 24, NDPI_HTTP_CRAWLER_BOT }, { 0xB959DA00 /* 185.89.218.0/24 */, 24, NDPI_HTTP_CRAWLER_BOT }, { 0xB959DA00 /* 185.89.218.0/23 */, 23, NDPI_HTTP_CRAWLER_BOT }, @@ -1518,512 +1519,514 @@ static ndpi_network6 ndpi_http_crawler_bot_protocol_list_6[] = { { "2600:1900:0:fd::", 64, NDPI_HTTP_CRAWLER_BOT }, { "2600:1900:0:fe::", 64, NDPI_HTTP_CRAWLER_BOT }, { "2600:1900:0:ff::", 64, NDPI_HTTP_CRAWLER_BOT }, - { "22001c00", 40, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880", 32, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880fff", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880ffff", 48, NDPI_HTTP_CRAWLER_BOT }, - { "22001cff", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f001", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f003", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f004", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f005", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f00", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f007", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f008", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f00a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f00c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f00d", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f00", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f00f", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f010", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f011", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f012", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f013", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f01", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f017", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f019", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f01b", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f01c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f01f", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a0328801000", 3, NDPI_HTTP_CRAWLER_BOT }, - { "2a0328802000", 3, NDPI_HTTP_CRAWLER_BOT }, - { "2a0328803000", 3, NDPI_HTTP_CRAWLER_BOT }, - { "2a0328804000", 3, NDPI_HTTP_CRAWLER_BOT }, - { "2a0328805000", 3, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880000", 3, NDPI_HTTP_CRAWLER_BOT }, - { "2a0328807000", 3, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f021", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f023", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f024", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f027", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f028", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f029", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f02b", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f02c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f02d", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f02", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f02f", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f030", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f031", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f032", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f033", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f034", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f035", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f03", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f037", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f038", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f03a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f03b", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f03d", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f03", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f03f", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2401db00", 32, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880", 3, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f101", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f201", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f103", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f203", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f104", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f204", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f107", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f207", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f108", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f208", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f10a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f20a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f10d", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f20d", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f10", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f20", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f10f", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f20f", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f110", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f210", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f111", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f211", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f112", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f212", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f11", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f21", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f117", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f217", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f119", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f219", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f11f", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f21f", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f121", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f221", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f123", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f223", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f10c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f20c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f105", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f205", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f10", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f20", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f11b", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f21b", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f113", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f213", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f11c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f21c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f128", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f228", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f02a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f12a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f22a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f12f", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f22f", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f124", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f127", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f129", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f12b", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f12c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f12d", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f12", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f130", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f131", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f132", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f133", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f134", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f135", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f13", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f137", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f138", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f13a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f13b", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f13d", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f13", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f13f", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f224", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f227", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f229", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f22b", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f22c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f22d", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f22", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f230", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f231", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f232", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f233", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f234", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f235", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f23", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f237", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f238", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f23a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f23b", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f23d", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f23", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f23f", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f0ff", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f1ff", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f2ff", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f044", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f144", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f244", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f042", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f043", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f045", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f04", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f047", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f048", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f04a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f04c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f04b", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f04d", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f259", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f258", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f257", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f25", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f255", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f254", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f253", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f252", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f250", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f24f", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f24d", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f24", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f24c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f24b", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f24a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f248", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f247", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f24", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f245", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f243", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f242", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f241", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f240", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f159", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f158", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f157", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f15", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f155", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f154", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f153", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f152", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f150", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f14f", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f14", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f14d", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f14c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f14b", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f14a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f148", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f147", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f14", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f145", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f143", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f142", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f141", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f140", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f059", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f058", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f057", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f05", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f055", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f054", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f053", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f052", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f050", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f04f", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f04", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880ff0b", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880ff0c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f040", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f041", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f0fc", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f0fd", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f0fc", 47, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f1fc", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f1fd", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f1fc", 47, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880ff08", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880ff09", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880ff0a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f05", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f15", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f25", 48, NDPI_HTTP_CRAWLER_BOT }, - { "22001cfa", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f05b", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f05a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f25a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f15c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f000", 3, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f05d", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f25c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f05c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f20", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f00", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f10", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f15d", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f25b", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f25d", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f15b", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f15a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f11", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f01", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f21", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032881", 32, NDPI_HTTP_CRAWLER_BOT }, - { "2a032881", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a0328811", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a0328812", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a0328813", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f12", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f22", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a0328814000", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a0328814003", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a0328814001", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a0328814002", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f05", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f13", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f0", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f23", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f24", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f14", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f07", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f15", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f25", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f08", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a0328814004", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f0a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f2", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f1", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f27", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f0b", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f17", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032881400", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a0328817", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a0328819", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a0328818", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a0328814", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032881", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a0328815", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032881a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f28", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f0d", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f18", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032881b", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032881c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a0328814007", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f29", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f19", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f0f", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f2a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f1a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f070", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032881d", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032881", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f071", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f1b", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f2b", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a0328814008", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a03288110", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032881f", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a03288111", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f2c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f1c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f073", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f1d", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f074", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f2d", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a0328814009", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f2", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f1", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f07", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f1f", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f2f", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f077", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a03288112", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a03288113", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a03288117", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a03288115", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a03288118", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a03288114", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a0328811", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a03288119", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a0328814005", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f078", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f170", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f270", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032881400a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032881400c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032881400b", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032881400d", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a0328811a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a0328811c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a0328811b", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f271", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f07d", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f171", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f07", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f172", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f272", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f080", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f173", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f273", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f081", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f174", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f274", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f175", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f275", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f082", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f17", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f27", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f083", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f277", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f084", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f177", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a0328811", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f085", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f178", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f278", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f179", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f08", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f279", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f17a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f08a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f27a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a03288148", 45, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f17b", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f27b", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f08", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032887ff58", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032887ff42", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a03288198", 45, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f091", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f17c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f27c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032887ff13", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032887ff2d", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032887ff0c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032887ff59", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032887ff15", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032887ff2c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032887ff0d", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032887ff0f", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032887ff31", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032887ff28", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032887ff11", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032887ff47", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032887ff32", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032887ff10", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032887ff4", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f17d", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f09", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f27d", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f27", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f097", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f17", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f098", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f27f", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f17f", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f180", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f099", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f282", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f09c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f181", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f183", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f09b", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f283", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f182", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f09a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f281", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f280", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f184", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f09d", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f284", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f09", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f185", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f285", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f0a2", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f18", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f28", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f187", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f287", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f0a3", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f288", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f0a4", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f188", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f28a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f0a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f18a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f289", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f0a5", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f189", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f28b", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f0a7", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f18b", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f28c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f18c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f0a8", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f202", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f0aa", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f102", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f300", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f312", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f319", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f323", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f30b", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f309", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f304", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f308", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f320", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f327", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f30c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f313", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f317", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f322", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f325", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f31d", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f310", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f30d", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f315", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f31c", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f30", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f30a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f32", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f30f", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f31", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f324", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f302", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f311", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f328", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f301", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f314", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f303", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f31f", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f30", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f31", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f307", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f318", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f321", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f305", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f31b", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a032880f31a", 48, NDPI_HTTP_CRAWLER_BOT }, - { "2a03830", 32, NDPI_HTTP_CRAWLER_BOT }, - { "2a10f78110c0", 4, NDPI_HTTP_CRAWLER_BOT }, + { "2620:0:1c00::", 40, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880::", 32, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:fffe::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:ffff::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2620:0:1cff::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f001::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f003::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f004::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f005::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f006::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f007::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f008::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f00a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f00c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f00d::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f00e::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f00f::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f010::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f011::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f012::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f013::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f016::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f017::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f019::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f01b::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f01c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f01f::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:1000::", 36, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:2000::", 36, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:3000::", 36, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:4000::", 36, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:5000::", 36, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:6000::", 36, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:7000::", 36, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f021::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f023::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f024::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f027::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f028::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f029::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f02b::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f02c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f02d::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f02e::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f02f::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f030::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f031::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f032::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f033::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f034::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f035::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f036::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f037::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f038::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f03a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f03b::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f03d::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f03e::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f03f::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2401:db00::", 32, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880::", 36, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f101::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f201::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f103::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f203::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f104::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f204::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f107::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f207::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f108::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f208::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f10a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f20a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f10d::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f20d::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f10e::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f20e::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f10f::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f20f::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f110::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f210::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f111::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f211::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f112::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f212::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f116::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f216::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f117::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f217::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f119::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f219::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f11f::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f21f::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f121::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f221::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f123::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f223::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f10c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f20c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f105::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f205::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f106::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f206::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f11b::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f21b::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f113::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f213::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f11c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f21c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f128::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f228::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f02a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f12a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f22a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f12f::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f22f::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f124::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f127::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f129::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f12b::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f12c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f12d::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f12e::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f130::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f131::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f132::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f133::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f134::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f135::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f136::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f137::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f138::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f13a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f13b::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f13d::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f13e::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f13f::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f224::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f227::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f229::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f22b::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f22c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f22d::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f22e::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f230::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f231::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f232::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f233::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f234::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f235::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f236::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f237::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f238::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f23a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f23b::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f23d::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f23e::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f23f::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f0ff::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f1ff::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f2ff::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f044::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f144::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f244::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f042::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f043::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f045::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f046::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f047::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f048::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f04a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f04c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f04b::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f04d::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f259::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f258::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f257::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f256::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f255::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f254::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f253::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f252::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f250::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f24f::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f24d::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f24e::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f24c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f24b::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f24a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f248::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f247::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f246::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f245::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f243::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f242::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f241::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f240::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f159::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f158::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f157::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f156::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f155::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f154::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f153::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f152::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f150::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f14f::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f14e::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f14d::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f14c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f14b::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f14a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f148::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f147::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f146::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f145::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f143::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f142::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f141::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f140::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f059::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f058::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f057::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f056::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f055::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f054::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f053::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f052::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f050::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f04f::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f04e::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:ff0b::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:ff0c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f040::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f041::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f0fc::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f0fd::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f0fc::", 47, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f1fc::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f1fd::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f1fc::", 47, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:ff08::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:ff09::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:ff0a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f05e::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f15e::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f25e::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2620:0:1cfa::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f05b::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f05a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f25a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f15c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f000::", 36, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f05d::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f25c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f05c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f260::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f060::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f160::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f15d::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f25b::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f25d::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f15b::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f15a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f161::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f061::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f261::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881::", 32, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:1::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:2::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:3::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f162::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f262::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:4000::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:4003::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:4001::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:4002::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f065::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f163::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f066::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f263::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f264::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f164::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f067::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f165::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f265::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f068::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:4004::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f06a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f266::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f166::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f267::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f06b::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f167::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:4006::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:7::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:9::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:8::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:4::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:6::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:5::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f268::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f06d::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f168::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:b::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:4007::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f269::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f169::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f06f::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f26a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f16a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f070::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:d::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:e::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f071::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f16b::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f26b::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:4008::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:10::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:f::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:11::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f26c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f16c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f073::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f16d::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f074::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f26d::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:4009::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f26e::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f16e::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f076::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f16f::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f26f::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f077::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:12::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:13::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:17::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:15::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:18::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:14::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:16::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:19::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:4005::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f078::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f170::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f270::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:400a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:400c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:400b::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:400d::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:1a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:1c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:1b::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f271::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f07d::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f171::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f07e::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f172::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f272::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f080::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f173::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f273::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f081::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f174::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f274::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f175::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f275::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f082::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f176::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f276::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f083::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f277::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f084::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f177::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:1e::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f085::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f178::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f278::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f179::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f086::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f279::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f17a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f08a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f27a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:48::", 45, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f17b::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f27b::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f08e::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2887:ff58::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2887:ff42::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2881:98::", 45, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f091::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f17c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f27c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2887:ff13::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2887:ff2d::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2887:ff0c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2887:ff59::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2887:ff15::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2887:ff2c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2887:ff0d::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2887:ff0f::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2887:ff31::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2887:ff28::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2887:ff11::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2887:ff47::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2887:ff32::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2887:ff10::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2887:ff46::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f17d::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f096::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f27d::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f27e::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f097::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f17e::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f098::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f27f::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f17f::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f180::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f099::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f282::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f09c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f181::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f183::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f09b::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f283::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f182::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f09a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f281::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f280::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f184::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f09d::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f284::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f09e::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f185::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f285::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f0a2::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f186::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f286::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f187::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f287::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f0a3::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f288::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f0a4::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f188::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f28a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f0a6::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f18a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f289::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f0a5::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f189::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f28b::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f0a7::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f18b::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f28c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f18c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f0a8::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f202::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f0aa::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f102::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f300::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f312::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f319::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f323::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f30b::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f309::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f304::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f308::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f320::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f327::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f30c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f313::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f317::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f322::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f325::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f31d::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f310::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f30d::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f315::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f31c::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f30e::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f30a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f326::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f30f::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f31e::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f324::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f302::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f311::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f328::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f301::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f314::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f303::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f31f::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f306::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f316::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f307::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f318::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f321::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f305::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f31b::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f31a::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f214::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:2880:f114::", 48, NDPI_HTTP_CRAWLER_BOT }, + { "2a03:83e0::", 32, NDPI_HTTP_CRAWLER_BOT }, + { "2a10:f781:10:cee0::", 64, NDPI_HTTP_CRAWLER_BOT }, /* End */ { NULL, 0, 0 } }; diff --git a/src/lib/ndpi_main.c b/src/lib/ndpi_main.c index b950dba1c..8f7cf7435 100644 --- a/src/lib/ndpi_main.c +++ b/src/lib/ndpi_main.c @@ -2289,6 +2289,10 @@ int ndpi_get_patricia_stats(struct ndpi_detection_module_struct *ndpi_struct, ndpi_patricia_get_stats(ndpi_struct->ip_risk_ptree, stats); return 0; + case NDPI_PTREE_RISK6: + ndpi_patricia_get_stats(ndpi_struct->ip_risk_ptree6, stats); + return 0; + case NDPI_PTREE_PROTOCOLS: ndpi_patricia_get_stats(ndpi_struct->protocols_ptree, stats); return 0; @@ -2542,6 +2546,23 @@ ndpi_risk_enum ndpi_network_risk_ptree_match(struct ndpi_detection_module_struct /* ******************************************* */ +ndpi_risk_enum ndpi_network_risk_ptree_match6(struct ndpi_detection_module_struct *ndpi_str, + struct in6_addr *pin) { + ndpi_prefix_t prefix; + ndpi_patricia_node_t *node; + + /* Make sure all in network byte order otherwise compares wont work */ + ndpi_fill_prefix_v6(&prefix, pin, 128, ((ndpi_patricia_tree_t *) ndpi_str->ip_risk_ptree6)->maxbits); + node = ndpi_patricia_search_best(ndpi_str->ip_risk_ptree6, &prefix); + + if(node) + return((ndpi_risk_enum)node->value.u.uv16[0].user_value); + + return(NDPI_NO_RISK); +} + +/* ******************************************* */ + static ndpi_patricia_node_t* add_to_ptree(ndpi_patricia_tree_t *tree, int family, void *addr, int bits) { ndpi_prefix_t prefix; ndpi_patricia_node_t *node; @@ -3105,18 +3126,24 @@ struct ndpi_detection_module_struct *ndpi_init_detection_module(ndpi_init_prefs ndpi_str->ip_risk_mask_ptree = ndpi_patricia_new(32 /* IPv4 */); if(!(prefs & ndpi_dont_init_risk_ptree)) { - /* TODO: ipv6 ip_risk_ptree */ - /* To disable warnings */ - (void)ndpi_anonymous_subscriber_icloud_private_relay_protocol_list_6; - (void)ndpi_http_crawler_bot_protocol_list_6; - (void)ndpi_anonymous_subscriber_protonvpn_protocol_list_6; - if((ndpi_str->ip_risk_ptree = ndpi_patricia_new(32 /* IPv4 */)) != NULL) { - if(!(prefs & ndpi_dont_load_icloud_private_relay_list)) - ndpi_init_ptree_ipv4(ndpi_str, ndpi_str->ip_risk_ptree, ndpi_anonymous_subscriber_icloud_private_relay_protocol_list); - if(!(prefs & ndpi_dont_load_protonvpn_exit_nodes_list)) - ndpi_init_ptree_ipv4(ndpi_str, ndpi_str->ip_risk_ptree, ndpi_anonymous_subscriber_protonvpn_protocol_list); - if(!(prefs & ndpi_dont_load_crawlers_list)) - ndpi_init_ptree_ipv4(ndpi_str, ndpi_str->ip_risk_ptree, ndpi_http_crawler_bot_protocol_list); + + if((ndpi_str->ip_risk_ptree = ndpi_patricia_new(32 /* IPv4 */)) == NULL || + (ndpi_str->ip_risk_ptree6 = ndpi_patricia_new(128 /* IPv6 */)) == NULL) { + NDPI_LOG_ERR(ndpi_str, "[NDPI] Error allocating tree\n"); + ndpi_exit_detection_module(ndpi_str); + return NULL; + } + if(!(prefs & ndpi_dont_load_icloud_private_relay_list)) { + ndpi_init_ptree_ipv4(ndpi_str, ndpi_str->ip_risk_ptree, ndpi_anonymous_subscriber_icloud_private_relay_protocol_list); + ndpi_init_ptree_ipv6(ndpi_str, ndpi_str->ip_risk_ptree6, ndpi_anonymous_subscriber_icloud_private_relay_protocol_list_6); + } + if(!(prefs & ndpi_dont_load_protonvpn_exit_nodes_list)) { + ndpi_init_ptree_ipv4(ndpi_str, ndpi_str->ip_risk_ptree, ndpi_anonymous_subscriber_protonvpn_protocol_list); + ndpi_init_ptree_ipv6(ndpi_str, ndpi_str->ip_risk_ptree6, ndpi_anonymous_subscriber_protonvpn_protocol_list_6); + } + if(!(prefs & ndpi_dont_load_crawlers_list)) { + ndpi_init_ptree_ipv4(ndpi_str, ndpi_str->ip_risk_ptree, ndpi_http_crawler_bot_protocol_list); + ndpi_init_ptree_ipv6(ndpi_str, ndpi_str->ip_risk_ptree6, ndpi_http_crawler_bot_protocol_list_6); } } @@ -3716,6 +3743,9 @@ void ndpi_exit_detection_module(struct ndpi_detection_module_struct *ndpi_str) { if(ndpi_str->ip_risk_ptree) ndpi_patricia_destroy((ndpi_patricia_tree_t *) ndpi_str->ip_risk_ptree, NULL); + if(ndpi_str->ip_risk_ptree6) + ndpi_patricia_destroy((ndpi_patricia_tree_t *) ndpi_str->ip_risk_ptree6, NULL); + if(ndpi_str->udpRoot != NULL) ndpi_tdestroy(ndpi_str->udpRoot, ndpi_free); if(ndpi_str->tcpRoot != NULL) ndpi_tdestroy(ndpi_str->tcpRoot, ndpi_free); @@ -7652,25 +7682,29 @@ static ndpi_protocol ndpi_internal_detection_process_packet(struct ndpi_detectio flow->risk_checked = 1; } if(!flow->tree_risk_checked) { - if(ndpi_str->ip_risk_ptree) { - /* TODO: ipv6 */ - if(packet->iph && - ndpi_is_public_ipv4(ntohl(packet->iph->saddr)) && - ndpi_is_public_ipv4(ntohl(packet->iph->daddr))) { - struct in_addr addr; - ndpi_risk_enum net_risk; - - addr.s_addr = packet->iph->saddr; - net_risk = ndpi_network_risk_ptree_match(ndpi_str, &addr); - if(net_risk == NDPI_NO_RISK) { - addr.s_addr = packet->iph->daddr; - net_risk = ndpi_network_risk_ptree_match(ndpi_str, &addr); - } + ndpi_risk_enum net_risk = NDPI_NO_RISK; - if(net_risk != NDPI_NO_RISK) - ndpi_set_risk(ndpi_str, flow, net_risk, NULL); - } + /* Right now, all the 3 supported risks are only about the *client* ip. + Don't check the server ip, to try avoiding false positives */ + + if(ndpi_str->ip_risk_ptree && + packet->iph && + ndpi_is_public_ipv4(ntohl(packet->iph->saddr)) && + ndpi_is_public_ipv4(ntohl(packet->iph->daddr))) { + struct in_addr addr; + + addr.s_addr = flow->c_address.v4; + net_risk = ndpi_network_risk_ptree_match(ndpi_str, &addr); + } else if(ndpi_str->ip_risk_ptree6 && + packet->iphv6) { /* TODO: some checks on "local" addresses? */ + struct in6_addr addr; + + addr = *(struct in6_addr *)&flow->c_address.v6; + net_risk = ndpi_network_risk_ptree_match6(ndpi_str, &addr); } + if(net_risk != NDPI_NO_RISK) + ndpi_set_risk(ndpi_str, flow, net_risk, NULL); + flow->tree_risk_checked = 1; } |