-
Notifications
You must be signed in to change notification settings - Fork 0
/
dv.py
34 lines (30 loc) · 1.2 KB
/
dv.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
25
26
27
28
29
30
31
32
33
34
import idna
# Função para gerar variações com caracteres especiais
def gerar_variacoes(dominio_base):
variacoes = set()
substituicoes = {
'a': ['á', 'à', 'â', 'ä'],
'e': ['é', 'è', 'ê', 'ë'],
'u': ['ú', 'ù', 'û', 'ü'],
'n': ['ñ'],
}
def substituir_caracteres(dominio, pos):
if pos >= len(dominio):
return [dominio]
variacoes_pos = []
if dominio[pos] in substituicoes:
for substituicao in substituicoes[dominio[pos]]:
nova_variacao = dominio[:pos] + substituicao + dominio[pos+1:]
variacoes_pos.extend(substituir_caracteres(nova_variacao, pos+1))
variacoes_pos.extend(substituir_caracteres(dominio, pos+1))
return variacoes_pos
variacoes.update(substituir_caracteres(dominio_base, 0))
return list(variacoes)
# Gerar as variações do domínio
dominio_base = "tabnews.com.br"
variacoes_dominio = gerar_variacoes(dominio_base)
# Converter para Punycode
dominios_punycode = [idna.encode(dominio).decode('ascii') for dominio in variacoes_dominio]
# Print das variações em Punycode
for dominio in dominios_punycode:
print(dominio)