aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Deri <lucaderi@users.noreply.github.com>2019-10-03 22:35:31 +0200
committerGitHub <noreply@github.com>2019-10-03 22:35:31 +0200
commit3180f279c8452fac55aa8785a0e0bbe23ec6a3b6 (patch)
tree67adf640a77dba672c39d2347d6f1096cabf4ae3
parent1982e6cef99fab6ce21650955fea9655fe35224e (diff)
parent8897aa6acbac707b3b08cd523a497f85e5c29238 (diff)
Merge pull request #792 from ntop/ndpi_streaming
Move Hulu and Disney+ to category match.
-rw-r--r--src/lib/ndpi_content_match.c.inc41
-rw-r--r--src/lib/ndpi_main.c18
2 files changed, 44 insertions, 15 deletions
diff --git a/src/lib/ndpi_content_match.c.inc b/src/lib/ndpi_content_match.c.inc
index 85cc60b58..0eed29d26 100644
--- a/src/lib/ndpi_content_match.c.inc
+++ b/src/lib/ndpi_content_match.c.inc
@@ -8307,15 +8307,6 @@ static ndpi_network host_protocol_list[] = {
{ 0xA7CEDA82 /* 167.206.218.130/32*/, 32, NDPI_PROTOCOL_PS_VUE },
{ 0xA7CEDA8A /* 167.206.218.138/32*/, 32, NDPI_PROTOCOL_PS_VUE },
- /* AS23286 Hulu, LLC. */
- { 0x081C7C00 /* 8.28.124.0/24 */, 24, NDPI_PROTOCOL_HULU },
- { 0x081C7D00 /* 8.28.125.0/24 */, 24, NDPI_PROTOCOL_HULU },
- { 0xC7C83200 /* 199.200.50.0/23 */, 23, NDPI_PROTOCOL_HULU },
- { 0xC7C83300 /* 199.200.51.0/24 */, 24, NDPI_PROTOCOL_HULU },
- { 0xC73C7400 /* 199.60.116.0/24 */, 24, NDPI_PROTOCOL_HULU },
- { 0xD05B9E00 /* 208.91.158.0/23 */, 23, NDPI_PROTOCOL_HULU },
- { 0xD1F9BA00 /* 209.249.186.0/24 */, 24, NDPI_PROTOCOL_HULU },
-
{ 0x0, 0, 0 }
};
@@ -8822,6 +8813,38 @@ static ndpi_category_match category_match[] = {
{ ".playercdn.net", "\\.playercdn" TLD, NDPI_PROTOCOL_CATEGORY_STREAMING },
{ "showmax.com", "showmax" TLD, NDPI_PROTOCOL_CATEGORY_STREAMING },
{ "showmax.akamaized.net", "showmax\\.akamaized" TLD, NDPI_PROTOCOL_CATEGORY_STREAMING },
+
+ /* Hulu Streaming services AS23286 */
+ { "8.28.124.0/24", NULL, NDPI_PROTOCOL_CATEGORY_STREAMING },
+ { "8.28.125.0/24", NULL, NDPI_PROTOCOL_CATEGORY_STREAMING },
+ { "199.200.50.0/23", NULL, NDPI_PROTOCOL_CATEGORY_STREAMING },
+ { "199.200.51.0/24", NULL, NDPI_PROTOCOL_CATEGORY_STREAMING },
+ { "199.60.116.0/24", NULL, NDPI_PROTOCOL_CATEGORY_STREAMING },
+ { "208.91.158.0/23", NULL, NDPI_PROTOCOL_CATEGORY_STREAMING },
+ { "209.249.186.0/24", NULL, NDPI_PROTOCOL_CATEGORY_STREAMING },
+
+ /* Disney Streaming services AS11251 */
+ { "8.4.4.0/24", NULL, NDPI_PROTOCOL_CATEGORY_STREAMING },
+ { "8.5.5.0/24", NULL, NDPI_PROTOCOL_CATEGORY_STREAMING },
+ { "8.33.30.0/24", NULL, NDPI_PROTOCOL_CATEGORY_STREAMING },
+ { "63.116.222.0/24", NULL, NDPI_PROTOCOL_CATEGORY_STREAMING },
+ { "63.116.223.0/24", NULL, NDPI_PROTOCOL_CATEGORY_STREAMING },
+ { "139.104.192.0/24", NULL, NDPI_PROTOCOL_CATEGORY_STREAMING },
+ { "139.104.193.0/24", NULL, NDPI_PROTOCOL_CATEGORY_STREAMING },
+ { "139.104.200.0/24", NULL, NDPI_PROTOCOL_CATEGORY_STREAMING },
+ { "139.104.201.0/24", NULL, NDPI_PROTOCOL_CATEGORY_STREAMING },
+ { "139.104.202.0/24", NULL, NDPI_PROTOCOL_CATEGORY_STREAMING },
+ { "139.104.203.0/24", NULL, NDPI_PROTOCOL_CATEGORY_STREAMING },
+ { "139.104.204.0/24", NULL, NDPI_PROTOCOL_CATEGORY_STREAMING },
+ { "139.104.205.0/24", NULL, NDPI_PROTOCOL_CATEGORY_STREAMING },
+ { "139.104.206.0/24", NULL, NDPI_PROTOCOL_CATEGORY_STREAMING },
+ { "139.104.207.0/24", NULL, NDPI_PROTOCOL_CATEGORY_STREAMING },
+ { "139.104.208.0/24", NULL, NDPI_PROTOCOL_CATEGORY_STREAMING },
+ { "139.104.209.0/24", NULL, NDPI_PROTOCOL_CATEGORY_STREAMING },
+ { "139.104.212.0/24", NULL, NDPI_PROTOCOL_CATEGORY_STREAMING },
+ { "139.104.216.0/24", NULL, NDPI_PROTOCOL_CATEGORY_STREAMING },
+ { "139.104.217.0/24", NULL, NDPI_PROTOCOL_CATEGORY_STREAMING },
+
{ NULL, NULL, 0 }
};
diff --git a/src/lib/ndpi_main.c b/src/lib/ndpi_main.c
index 6cb706e66..d362061fe 100644
--- a/src/lib/ndpi_main.c
+++ b/src/lib/ndpi_main.c
@@ -4234,7 +4234,6 @@ void ndpi_load_ip_category(struct ndpi_detection_module_struct *ndpi_str,
char *ptr = strrchr(ip_address_and_mask, '/');
if(ptr) {
- ptr[0] = '\0';
ptr++;
if(atoi(ptr)>=0 && atoi(ptr)<=32)
bits = atoi(ptr);
@@ -4304,13 +4303,20 @@ int ndpi_load_hostname_category(struct ndpi_detection_module_struct *ndpi_str,
/* ********************************************************************************* */
int ndpi_enable_loaded_categories(struct ndpi_detection_module_struct *ndpi_str) {
- int i;
+ int i, ip_addr[4];
/* First add the nDPI known categories matches */
- for(i=0; category_match[i].string_to_match != NULL; i++)
- ndpi_load_hostname_category(ndpi_str,
- category_match[i].string_to_match,
- category_match[i].protocol_category);
+ for(i=0; category_match[i].string_to_match != NULL; i++) {
+ if(sscanf(category_match[i].string_to_match, "%d.%d.%d.%d", &ip_addr[0], &ip_addr[1], &ip_addr[2], &ip_addr[3]) == 4){
+ ndpi_load_ip_category(ndpi_str,
+ category_match[i].string_to_match,
+ category_match[i].protocol_category);
+ } else{
+ ndpi_load_hostname_category(ndpi_str,
+ category_match[i].string_to_match,
+ category_match[i].protocol_category);
+ }
+ }
#ifdef HAVE_HYPERSCAN
if(ndpi_str->custom_categories.num_to_load > 0) {