Compare commits
No commits in common. "fd68be89918aacb159562837eec9bffe651095a6" and "58212611bac6d342456853b7e044e9e947a2eecd" have entirely different histories.
fd68be8991
...
58212611ba
@ -5,7 +5,7 @@ A Python script to resolve email-related DNS records for a domain.
|
|||||||
Example:
|
Example:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ python email_dns.py contoso.com
|
$ python email_dns.py cbarts.net
|
||||||
{
|
{
|
||||||
"cbarts.net": {
|
"cbarts.net": {
|
||||||
"mx": [
|
"mx": [
|
||||||
|
|||||||
22
email_dns.py
22
email_dns.py
@ -22,15 +22,6 @@ dkim_selectors = { # <selector>._domainkey.<domain>
|
|||||||
'protonmail': [
|
'protonmail': [
|
||||||
'protonmail', 'protonmail1', 'protonmail2'
|
'protonmail', 'protonmail1', 'protonmail2'
|
||||||
],
|
],
|
||||||
'autotask': [
|
|
||||||
'autotask'
|
|
||||||
],
|
|
||||||
'connectwise psa': [
|
|
||||||
's318306'
|
|
||||||
],
|
|
||||||
'zendesk': [
|
|
||||||
'zendesk1', 'zendesk2'
|
|
||||||
],
|
|
||||||
'sendgrid': [
|
'sendgrid': [
|
||||||
'sg', 's1', 'sg2', 's2', 's3'
|
'sg', 's1', 'sg2', 's2', 's3'
|
||||||
],
|
],
|
||||||
@ -45,13 +36,8 @@ dkim_selectors = { # <selector>._domainkey.<domain>
|
|||||||
'mandrill': [
|
'mandrill': [
|
||||||
'mandrill'
|
'mandrill'
|
||||||
],
|
],
|
||||||
# Mailgun (Very generic, thank you, Mailgun)
|
|
||||||
'mailgun': [
|
'mailgun': [
|
||||||
'pic', 'smtp',
|
'pic', 'smtp', # Mailgun (Very generic, thank you, Mailgun)
|
||||||
],
|
|
||||||
# Bloomerang (using SendGrid backend)
|
|
||||||
'bloomerang': [
|
|
||||||
'blm', 'blm2',
|
|
||||||
],
|
],
|
||||||
'bullhorn': [
|
'bullhorn': [
|
||||||
'bh'
|
'bh'
|
||||||
@ -73,7 +59,7 @@ def process_args(args: list) -> list:
|
|||||||
|
|
||||||
return domains
|
return domains
|
||||||
|
|
||||||
def safe_resolve(name: str, type: str) -> resolver.Answer | None:
|
def safe_resolve(name: str, type: str) -> resolver.Answer:
|
||||||
try:
|
try:
|
||||||
answer = resolver.resolve(name, type)
|
answer = resolver.resolve(name, type)
|
||||||
return answer
|
return answer
|
||||||
@ -84,9 +70,7 @@ def safe_resolve(name: str, type: str) -> resolver.Answer | None:
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
class Domain:
|
class Domain:
|
||||||
|
|
||||||
# def __init__(self, name: str, mx: str = [], spf: str = None, dkim: list = [], dmarc: str = None) -> None:
|
# def __init__(self, name: str, mx: str = [], spf: str = None, dkim: list = [], dmarc: str = None) -> None:
|
||||||
|
|
||||||
def __init__(self, name: str) -> None:
|
def __init__(self, name: str) -> None:
|
||||||
self.name = name
|
self.name = name
|
||||||
self.mx = []
|
self.mx = []
|
||||||
@ -111,7 +95,7 @@ class Domain:
|
|||||||
for a in answer:
|
for a in answer:
|
||||||
if str(a).lower().find('v=spf1') != -1:
|
if str(a).lower().find('v=spf1') != -1:
|
||||||
self.spf = str(a).replace('"', '')
|
self.spf = str(a).replace('"', '')
|
||||||
# TODO: Recurse through includes?
|
# TODO: Recurse through includes
|
||||||
# matches = re.search(r'(?:include:)(.*)(?=\s)', str(a).lower())
|
# matches = re.search(r'(?:include:)(.*)(?=\s)', str(a).lower())
|
||||||
# domains = set()
|
# domains = set()
|
||||||
# if matches:
|
# if matches:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user