-
Notifications
You must be signed in to change notification settings - Fork 0
/
generator.py
24 lines (18 loc) · 765 Bytes
/
generator.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import itertools
import homoglyphs as hg
import validators
class Generator:
@staticmethod
def generate(domain_name: str):
tld = domain_name[domain_name.rfind('.'):]
domain_name = domain_name[:domain_name.rfind('.')]
letters_homoglyphs = []
for letter in domain_name:
if letter == '.':
letters_homoglyphs += '.'
continue
letters_homoglyphs += [hg.Homoglyphs().get_combinations(letter)]
for typosquatted_domain_name in itertools.product(*letters_homoglyphs):
typosquatted_domain_name_str = ''.join(typosquatted_domain_name) + tld
if validators.domain(typosquatted_domain_name_str):
yield typosquatted_domain_name_str