diff --git a/pymispwarninglists/api.py b/pymispwarninglists/api.py index 34489aa..799ddef 100644 --- a/pymispwarninglists/api.py +++ b/pymispwarninglists/api.py @@ -102,7 +102,7 @@ class WarningList(): parsed_url = urlparse(value) if parsed_url.hostname: value = parsed_url.hostname - return any(value.endswith(v) for v in self.list) + return any(value == v or value.endswith("."+v.lstrip(".")) for v in self.list) elif self.type == 'cidr': try: value = ip_address(value) diff --git a/tests/tests.py b/tests/tests.py index 71643af..c8d31b2 100644 --- a/tests/tests.py +++ b/tests/tests.py @@ -45,4 +45,8 @@ class TestPyMISPWarningLists(unittest.TestCase): results = self.warninglists.search('1e100.net') self.assertEqual(results[0].name, 'List of known google domains') results = self.warninglists.search('something.files.1drv.com') - self.assertEqual(results[0].name, 'Top 1,000,000 most-used sites from Tranco') + self.assertTrue('List of known microsoft domains' in [r.name for r in results]) + results = self.warninglists.search('arbitrary-domain-1e100.net') + self.assertEqual(results, []) + results = self.warninglists.search('phishing.co.uk') + self.assertEqual(results, [])