corrected wrong import and added generic lookup module
This commit is contained in:
parent
ac7c059d34
commit
d562b238c2
BIN
generic/__pycache__/domain_lookup.cpython-312.pyc
Normal file
BIN
generic/__pycache__/domain_lookup.cpython-312.pyc
Normal file
Binary file not shown.
BIN
generic/__pycache__/ip_lookup.cpython-312.pyc
Normal file
BIN
generic/__pycache__/ip_lookup.cpython-312.pyc
Normal file
Binary file not shown.
BIN
generic/__pycache__/sanitize.cpython-312.pyc
Normal file
BIN
generic/__pycache__/sanitize.cpython-312.pyc
Normal file
Binary file not shown.
BIN
generic/__pycache__/spf_dmarc.cpython-312.pyc
Normal file
BIN
generic/__pycache__/spf_dmarc.cpython-312.pyc
Normal file
Binary file not shown.
BIN
generic/__pycache__/type_hosts.cpython-312.pyc
Normal file
BIN
generic/__pycache__/type_hosts.cpython-312.pyc
Normal file
Binary file not shown.
BIN
generic/__pycache__/type_hosts_listed.cpython-312.pyc
Normal file
BIN
generic/__pycache__/type_hosts_listed.cpython-312.pyc
Normal file
Binary file not shown.
BIN
generic/__pycache__/type_hosts_organized.cpython-312.pyc
Normal file
BIN
generic/__pycache__/type_hosts_organized.cpython-312.pyc
Normal file
Binary file not shown.
5
generic/domain_lookup.py
Normal file
5
generic/domain_lookup.py
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
import socket
|
||||||
|
|
||||||
|
def get_ip_address(domain):
|
||||||
|
hostname = socket.gethostbyname(domain)
|
||||||
|
return hostname
|
5
generic/ip_lookup.py
Normal file
5
generic/ip_lookup.py
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
import socket
|
||||||
|
|
||||||
|
def get_hostname(IP):
|
||||||
|
hostname = socket.gethostbyaddr(IP)
|
||||||
|
return hostname
|
7
generic/sanitize.py
Normal file
7
generic/sanitize.py
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
import re
|
||||||
|
|
||||||
|
def strip_and_list(hosts):
|
||||||
|
if hosts.strip() != '':
|
||||||
|
sanitized = re.split("; |, | |\n", hosts)
|
||||||
|
return sanitized
|
||||||
|
# break
|
19
generic/spf_dmarc.py
Normal file
19
generic/spf_dmarc.py
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
from checkdmarc.dmarc import check_dmarc
|
||||||
|
from checkdmarc.spf import check_spf
|
||||||
|
import validators
|
||||||
|
|
||||||
|
def extract_domain(host: str) -> str:
|
||||||
|
if validators.email(host):
|
||||||
|
host = host.split('@')[1]
|
||||||
|
return host
|
||||||
|
|
||||||
|
|
||||||
|
def lookup(host: str) -> tuple:
|
||||||
|
host = extract_domain(host)
|
||||||
|
result_dmarc = check_dmarc(host)
|
||||||
|
dmarc_quarantine = result_dmarc['record'].split(';')[1]
|
||||||
|
result_spf = check_spf(host)
|
||||||
|
# spf_includes = result_spf['record'].split()[1:]
|
||||||
|
spf_includes = ', '.join(str(item) for item in result_spf['record'].split()[1:])
|
||||||
|
return (dmarc_quarantine, spf_includes)
|
||||||
|
|
8
generic/type_hosts_listed.py
Normal file
8
generic/type_hosts_listed.py
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
import validators
|
||||||
|
|
||||||
|
def type_hosts(hosts):
|
||||||
|
validated_hosts = []
|
||||||
|
for host in hosts:
|
||||||
|
if validators.url(host) or validators.domain(host) or validators.ipv4(host) or validators.ipv6(host) or validators.email(host):
|
||||||
|
validated_hosts.append(host)
|
||||||
|
return validated_hosts
|
38
generic/type_hosts_organized.py
Normal file
38
generic/type_hosts_organized.py
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
import validators
|
||||||
|
|
||||||
|
def normalize(host):
|
||||||
|
domain_name, tld = "", ""
|
||||||
|
if host.startswith('www.'):
|
||||||
|
domain_name, tld = str.split(host,'.')[-2:]
|
||||||
|
normalized_domain = domain_name + '.' + tld
|
||||||
|
return normalized_domain
|
||||||
|
else:
|
||||||
|
return host
|
||||||
|
|
||||||
|
def type_hosts(hosts):
|
||||||
|
validated_hosts = {
|
||||||
|
"URLs": [],
|
||||||
|
"domains": [],
|
||||||
|
"IPs": [],
|
||||||
|
"emails": [],
|
||||||
|
}
|
||||||
|
URLs = []
|
||||||
|
domains = []
|
||||||
|
IPs = []
|
||||||
|
email = []
|
||||||
|
for host in hosts:
|
||||||
|
if validators.url(host):
|
||||||
|
URLs.append(host)
|
||||||
|
elif validators.domain(host):
|
||||||
|
domains.append(normalize(host))
|
||||||
|
elif validators.ipv4(host) or validators.ipv6(host):
|
||||||
|
IPs.append(host)
|
||||||
|
elif validators.email(host):
|
||||||
|
email.append(host)
|
||||||
|
else:
|
||||||
|
print("This is not a URL, IP, email address or hostname: ", host)
|
||||||
|
validated_hosts["URLs"].extend([i for i in URLs])
|
||||||
|
validated_hosts["domains"].extend([i for i in domains])
|
||||||
|
validated_hosts["IPs"].extend([i for i in IPs])
|
||||||
|
validated_hosts["emails"].extend([i for i in email])
|
||||||
|
return validated_hosts
|
|
@ -1,14 +1,15 @@
|
||||||
# From: https://www.geeksforgeeks.org/how-to-bind-the-enter-key-to-a-tkinter-window/
|
# From: https://www.geeksforgeeks.org/how-to-bind-the-enter-key-to-a-t//kinter-window/
|
||||||
|
|
||||||
# importing tkinter
|
# importing tkinter
|
||||||
|
|
||||||
import tkinter as tk
|
import tkinter as tk
|
||||||
from ..generic import sanitize, type_hosts_listed, type_hosts_organized, ip_lookup, domain_lookup, spf_dmarc
|
from generic import sanitize, type_hosts_listed, type_hosts_organized, ip_lookup, domain_lookup, spf_dmarc
|
||||||
|
|
||||||
# function to run on pressing
|
# function to run on pressing
|
||||||
# 'ENTER' key from keyboard.
|
# 'ENTER' key from keyboard.
|
||||||
def key_handler_function(event):
|
def key_handler_function(event):
|
||||||
inputs = entry.get()
|
inputs = entry.get()
|
||||||
|
print(type(inputs))
|
||||||
sanitized = sanitize.strip_and_list(inputs)
|
sanitized = sanitize.strip_and_list(inputs)
|
||||||
typed = type_hosts_listed.type_hosts(sanitized)
|
typed = type_hosts_listed.type_hosts(sanitized)
|
||||||
textbox.insert('end', typed)
|
textbox.insert('end', typed)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user