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 8c391f4..1def6ee 100644 --- a/tests/tests.py +++ b/tests/tests.py @@ -43,6 +43,10 @@ class TestPyMISPWarningLists(unittest.TestCase): results = self.warninglists.search('2001:DB8::34:1') self.assertEqual(results[0].name, 'List of RFC 3849 CIDR blocks') results = self.warninglists.search('1e100.net') - self.assertEqual(results[0].name, 'Top 1,000,000 most-used sites from Tranco') + self.assertTrue('List of known google domains' in [r.name for r in results]) 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, [])