Пример #1
0
 def _filter_ENDSWITH(self, data):
     for key in self.key:
         target = DictQuery(data).get(key, '')
         if isinstance(target, list):
             for t in target:
                 if self.__check_endswith(t):
                     return True
         else:
             if self.__check_endswith(target):
                 return True
     return False
Пример #2
0
 def _filter_DOMAIN(self, data):
     for key in self.key:
         target = DictQuery(data).get(key, '')
         if isinstance(target, list):
             for t in target:
                 if self.__check_domain(t):
                     return True
         else:
             if self.__check_domain(target):
                 return True
     return False
Пример #3
0
 def _filter_REGEXP(self, data):
     for key in self.key:
         target = DictQuery(data).get(key, '')
         if isinstance(target, list):
             for t in target:
                 if self.__check_regexp(t):
                     return True
         else:
             if self.__check_regexp(target):
                 return True
     return False
Пример #4
0
 def _filter_KEYWORD(self, data):
     for key in self.key:
         target = DictQuery(data).get(key, '')
         if isinstance(target, list):
             for t in target:
                 if self.__check_keyword(t):
                     return True
         else:
             if self.__check_keyword(target):
                 return True
     return False
Пример #5
0
 def _filter_NETWORK(self, data):
     if not data:
         return False
     for key in self.key:
         target = DictQuery(data).get(key, '0.0.0.0')
         if isinstance(target, list):
             for t in target:
                 if self.__check_network(t):
                     return True
         else:
             if self.__check_network(target):
                 return True
     return False
Пример #6
0
 def _filter_NOT_NETWORK(self, data):
     if not data:
         return False
     for key in self.key:
         target = DictQuery(data).get(key, '0.0.0.0')
         if isinstance(target, list):
             for t in target:
                 # Se fa match anche solo un IP allora ritorno False
                 if not self.__check_not_network(t):
                     return False
         else:
             if not self.__check_not_network(target):
                 return False
     return True
Пример #7
0
 def __number_comparator(self, data, comparator):
     # Wrapper for filters GREATER, LESS, GREATER_EQ, LESS_EQ
     for key in self.key:
         target = DictQuery(data).get(key, '')
         if not target:
             return False
         if isinstance(target, list):
             for t in target:
                 try:
                     if comparator(float(t)):
                         return True
                 except ValueError:
                     raise ValueError(
                         f"Invalid target in GREATER filter: {t} is not float"
                     )
         else:
             try:
                 if comparator(float(target)):
                     return True
             except ValueError:
                 raise ValueError(
                     f"Invalid target in GREATER filter: {target} is not float"
                 )
     return False
Пример #8
0
 def _filter_NOT_EXISTS(self, data):
     for key in self.key:
         if DictQuery(data).get(key) is not None:
             return False
     return True