More opnsense

This commit is contained in:
YuruC3 2025-05-13 16:31:35 +02:00
parent 8a5375c5c8
commit 6beadaba5f
2 changed files with 44 additions and 28 deletions

View File

@ -1,6 +1,6 @@
import requests, schedule, time
from bs4 import BeautifulSoup
from whatDomain import *
from whatDomain import ermWhatAAAATheIpFromDomainYaCrazy, ermWhatATheIpFromDomainYaCrazy
@ -9,25 +9,9 @@ IPv4FILE = "./OPNS_MirrorListV4"
IPv6FILE = "./OPNS_MirrorListV6"
# Define EU and American countries as well as Security for security updates
target_countries = set([
# Europe
"Austria", "Belgium", "Bulgaria", "Croatia", "Czech Republic", "Denmark",
"Estonia", "Finland", "France", "Germany", "Greece", "Hungary", "Iceland",
"Ireland", "Italy", "Latvia", "Lithuania", "Netherlands", "Norway", "Poland",
"Portugal", "Romania", "Slovakia", "Slovenia", "Spain", "Sweden", "Switzerland",
"United Kingdom", "Moldova",
# America
"Argentina", "Brazil", "Canada", "Chile", "Colombia", "Costa Rica", "Ecuador",
"Mexico", "Peru", "United States", "Uruguay", "Venezuela",
# Others
"Security", "Extras"
])
def sanitizeURL(inpurl: str):
# if not "/" in inpurl[:-1]:
# inpurl += "/"
if not "/" in inpurl[:-1]:
inpurl += "/"
if "https://" in inpurl:
outurl = inpurl[8:]
elif "http://" in inpurl:
@ -159,6 +143,25 @@ def LeJob():
# time.sleep(30) #Wait one minute
# # LeJob()
def DNSerrHandling(inpErrorCode: int):
match inpErrorCode:
case -1:
return "No answer from dns server."
case -2:
# return "All nameservers failed to answer the query."
print("All nameservers failed to answer the query.\n Fix your DNS servers.")
exit(-1)
case -3:
return "The DNS query name does not exist."
case -4:
return "The DNS querry got timed out."
case _:
return "Not implemented"
gigalist = []
payload = requests.get(OPNSNSMIRRORURL)
@ -179,11 +182,12 @@ for data in soup.find_all('div', class_='download_section'):
IPv4Dict = ermWhatATheIpFromDomainYaCrazy(saniturl)
IPv6Dict = ermWhatAAAATheIpFromDomainYaCrazy(saniturl)
if IPv4Dict == -1:
print(f"ERROR RESOLVING {saniturl} IPv4 address")
if type(IPv4Dict) == int:
print(f"{DNSerrHandling(IPv4Dict)}")
continue
elif IPv6Dict == -1:
print(f"ERROR RESOLVING {saniturl} IPv6 address")
elif type(IPv6Dict) == int:
print(f"ERROR RESOLVING {saniturl} IPv6 address with error code {IPv6Dict}")
continue
for key, ip in IPv4Dict.items():

View File

@ -22,8 +22,12 @@ def ermWhatATheIpFromDomainYaCrazy(inpDomainNameOrSomething: Annotated[str, "Dom
result = dns.resolver.resolve(inpDomainNameOrSomething, 'A')
except dns.resolver.NoAnswer:
return -1
except dns.resolver.NoNameservers or dns.resolver.LifetimeTimeout:
return -1
except dns.resolver.NoNameservers:
return -2
except dns.resolver.NXDOMAIN:
return -3
except dns.resolver.LifetimeTimeout:
return -4
for i, something in enumerate(result):
outDict[i] = something.to_text()
# i += 1
@ -49,8 +53,12 @@ def ermWhatAAAATheIpFromDomainYaCrazy(inpDomainNameOrSomething: Annotated[str, "
result = dns.resolver.resolve(inpDomainNameOrSomething, 'AAAA')
except dns.resolver.NoAnswer:
return -1
except dns.resolver.NoNameservers or dns.resolver.LifetimeTimeout:
return -1
except dns.resolver.NoNameservers:
return -2
except dns.resolver.NXDOMAIN:
return -3
except dns.resolver.LifetimeTimeout:
return -4
for i, something in enumerate(result):
outDict[i] = something.to_text()
# i += 1
@ -80,7 +88,11 @@ def ermWhatPTRTheIpFromDomainYaCrazy(inpIpAddressOrSomething: Annotated[str, "IP
except dns.resolver.NoAnswer:
return -1
except dns.resolver.NoNameservers:
return -1
return -2
except dns.resolver.NXDOMAIN:
return -3
except dns.resolver.LifetimeTimeout:
return -4
for i, something in enumerate(result):
outDict[i] = something.to_text()
# i += 1