trying out ways to check for connectivity after validating urls and domains

This commit is contained in:
Joost Agterhoek 2025-04-23 22:06:41 +02:00
parent eae6791ba2
commit 99e59d0cb9

View File

@ -7,6 +7,7 @@ from checkdmarc.spf import check_spf
import validators import validators
from ipwhois import IPWhois from ipwhois import IPWhois
from whois import whois from whois import whois
import requests
# from constants import DOMAIN, EMAIL, IPV4, IPV6, URL # from constants import DOMAIN, EMAIL, IPV4, IPV6, URL
from . import abuseipdb_api, virustotal_api from . import abuseipdb_api, virustotal_api
@ -76,6 +77,7 @@ def sanitize(user_input):
return sanitized return sanitized
# FIX: This has already been done by the function 'extract'. Consolidate.
def determine(host): def determine(host):
host_type = "" host_type = ""
if validators.url(host): if validators.url(host):
@ -93,17 +95,33 @@ def determine(host):
return host_type return host_type
def online(host):
if host.startswith("http://", "https://"):
try:
requests.get(host)
return True
except requests.exceptions.ConnectionError:
return False
else:
host = "https://" + host
try:
requests.get(host)
return True
except requests.exceptions.ConnectionError:
return False
def extract(user_input): def extract(user_input):
hosts = [] hosts = []
errors = [] errors = []
for item in user_input: for item in user_input:
if validators.url(item): if validators.url(item) and online(item):
hosts.append(item) hosts.append(item)
elif validators.domain(item): elif validators.domain(item) and online(item):
hosts.append(item) hosts.append(item)
elif validators.ip_address.ipv4(item): elif validators.ip_address.ipv4(item) and online(item):
hosts.append(item) hosts.append(item)
elif validators.ip_address.ipv6(item): elif validators.ip_address.ipv6(item) and online(item):
hosts.append(item) hosts.append(item)
elif validators.email(item): elif validators.email(item):
hosts.append(item) hosts.append(item)