-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathutil.py
More file actions
45 lines (35 loc) · 1.16 KB
/
util.py
File metadata and controls
45 lines (35 loc) · 1.16 KB
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
35
36
37
38
39
40
41
42
43
44
from ipaddress import ip_address, ip_network
import dnspython as dns
from dns.resolver import resolve , LifetimeTimeout , NXDOMAIN
from dns.reversename import from_address
from validators import domain, email
def checkNetworkRange(address:str, subnet:str):
return ip_address(address) in ip_network(subnet.strip('"'))
# collecting all the DNS queries
# in one place for clear mind
class domainNameQuery:
# get TXT records
def txt(domain:str) -> list:
try:
for line in resolve(domain, 'TXT'):
if str(line).strip('"').startswith('v=spf1'):
return str(line).split(' ')
except LifetimeTimeout:
raise ConnectionError
# get domain IP address
def a(domain:str) -> list:
output = []
try:
for ip in resolve(domain, 'A'): output.append(str(ip))
except LifetimeTimeout:
raise ConnectionError
return output
# TODO PARSING OUTPUT
def ptr(ip:str) -> list:
output = []
try:
return resolve(ip, 'ptr')
except NXDOMAIN:
return None
# TODO
def mx(domain:str): pass