OPNsense links
This commit is contained in:
		
							parent
							
								
									c265a83300
								
							
						
					
					
						commit
						8a5375c5c8
					
				
							
								
								
									
										2
									
								
								opnsense/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								opnsense/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | ||||
| __pycache__ | ||||
| test | ||||
							
								
								
									
										187
									
								
								opnsense/main.log
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										187
									
								
								opnsense/main.log
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,187 @@ | ||||
| [<div class="download_section"> | ||||
| <h2>Australia</h2> | ||||
| <h3><a href="https://mirror.aarnet.edu.au/pub/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="AARNet Pty Ltd">AARNet Pty Ltd</a></h3> | ||||
| </div>, <div class="download_section"> | ||||
| <h2>Brazil</h2> | ||||
| <h3><a href="https://mirror.cloudfence.com.br/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="Cloudfence">Cloudfence</a></h3> | ||||
| </div>, <div class="download_section"> | ||||
| <h2>China</h2> | ||||
| <h3><a href="https://opnsense.aivian.org/releases/mirror/" rel="noopener noreferrer" target="_blank" title="Aivian">Aivian</a></h3> | ||||
| <h3><a href="https://mirrors.pku.edu.cn/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="Peking University open source software mirror">Peking University open source software mirror</a></h3> | ||||
| </div>, <div class="download_section"> | ||||
| <h2>Colombia</h2> | ||||
| <h3><a href="https://mirror.venturasystems.tech/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="Ventura Systems">Ventura Systems</a></h3> | ||||
| </div>, <div class="download_section"> | ||||
| <h2>Denmark</h2> | ||||
| <h3><a href="https://mirrors.dotsrc.org/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="Aalborg University">Aalborg University</a></h3> | ||||
| <h3><a href="https://opnsense.c0urier.net/releases/mirror/" rel="noopener noreferrer" target="_blank" title="c0urier.net">c0urier.net</a></h3> | ||||
| </div>, <div class="download_section"> | ||||
| <h2>Ecuador</h2> | ||||
| <h3><a href="https://mirror.cedia.org.ec/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="CEDIA">CEDIA</a></h3> | ||||
| <h3><a href="https://mirror.ueb.edu.ec/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="Universidad Estatal de Bolívar">Universidad Estatal de Bolívar</a></h3> | ||||
| </div>, <div class="download_section"> | ||||
| <h2>France</h2> | ||||
| <h3><a href="https://mirror.vraphim.com/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="Vraphim">Vraphim</a></h3> | ||||
| </div>, <div class="download_section"> | ||||
| <h2>Germany</h2> | ||||
| <h3><a href="https://mirror.dns-root.de/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="dns-root.de (Cloudflare CDN)">dns-root.de (Cloudflare CDN)</a></h3> | ||||
| <h3><a href="https://mirror.level66.network/opnsense-dist/releases/mirror/" rel="noopener noreferrer" target="_blank" title="level66.network">level66.network</a></h3> | ||||
| <h3><a href="https://mirror.uvensys.de/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="uvensys GmbH">uvensys GmbH</a></h3> | ||||
| <h3><a href="https://mirror.fra10.de.leaseweb.net/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="LeaseWeb">LeaseWeb</a></h3> | ||||
| </div>, <div class="download_section"> | ||||
| <h2>Greece</h2> | ||||
| <h3><a href="https://ftp.cc.uoc.gr/mirrors/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="University of Crete / Department of Physics">University of Crete / Department of Physics</a></h3> | ||||
| </div>, <div class="download_section"> | ||||
| <h2>Hungary</h2> | ||||
| <h3><a href="https://quantum-mirror.hu/mirrors/pub/opnsense" rel="noopener noreferrer" target="_blank" title="Quantum Mirror">Quantum Mirror</a></h3> | ||||
| </div>, <div class="download_section"> | ||||
| <h2>India</h2> | ||||
| <h3><a href="https://mirrors.hopbox.net/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="Hopbox">Hopbox</a></h3> | ||||
| </div>, <div class="download_section"> | ||||
| <h2>Iran</h2> | ||||
| <h3><a href="https://mirror1.isatisidc.ir/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="Isatis Data Center (isatisidc.ir)">Isatis Data Center (isatisidc.ir)</a></h3> | ||||
| </div>, <div class="download_section"> | ||||
| <h2>Korea</h2> | ||||
| <h3><a href="https://mirror.amuksa.com/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="DAXNET, ROKFOSS PROJECT">DAXNET, ROKFOSS PROJECT</a></h3> | ||||
| <h3><a href="https://mirror.techlabs.co.kr/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="Techlabs, ROKFOSS PROJECT">Techlabs, ROKFOSS PROJECT</a></h3> | ||||
| <h3><a href="https://mirror.zzunipark.com/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="Zzunimirror, ROKFOSS PROJECT">Zzunimirror, ROKFOSS PROJECT</a></h3> | ||||
| <h3><a href="https://mirror.hemino.net/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="HMirror, ROKFOSS PROJECT">HMirror, ROKFOSS PROJECT</a></h3> | ||||
| <h3><a href="https://mirror.keiminem.com/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="Keiverse (Gumi, South Korea)">Keiverse (Gumi, South Korea)</a></h3> | ||||
| </div>, <div class="download_section"> | ||||
| <h2>Morocco</h2> | ||||
| <h3><a href="https://mirror.marwan.ma/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="MARWAN, Rabat">MARWAN, Rabat</a></h3> | ||||
| </div>, <div class="download_section"> | ||||
| <h2>New Zealand</h2> | ||||
| <h3><a href="https://mirror.catalyst.net.nz/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="catalyst.net Ltd.">catalyst.net Ltd.</a></h3> | ||||
| </div>, <div class="download_section"> | ||||
| <h2>Portugal</h2> | ||||
| <h3><a href="https://mirror.leitecastro.com/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="Community (Lisbon)">Community (Lisbon)</a></h3> | ||||
| </div>, <div class="download_section"> | ||||
| <h2>Spain</h2> | ||||
| <h3><a href="https://mirror.raiolanetworks.com/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="Raiola Networks (Madrid)">Raiola Networks (Madrid)</a></h3> | ||||
| </div>, <div class="download_section"> | ||||
| <h2>Switzerland</h2> | ||||
| <h3><a href="https://opnsense-mirror.hiho.ch/releases/mirror/" rel="noopener noreferrer" target="_blank" title="Hiho.ch">Hiho.ch</a></h3> | ||||
| <h3><a href="https://mirror.init7.net/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="Init7">Init7</a></h3> | ||||
| <h3><a href="https://mirror-opnsense.serverbase.ch/releases/mirror/" rel="noopener noreferrer" target="_blank" title="ServerBase AG">ServerBase AG</a></h3> | ||||
| </div>, <div class="download_section"> | ||||
| <h2>Taiwan</h2> | ||||
| <h3><a href="https://mirror.ntct.edu.tw/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="Nantou County Education Network Center">Nantou County Education Network Center</a></h3> | ||||
| </div>, <div class="download_section"> | ||||
| <h2>The Netherlands</h2> | ||||
| <h3><a href="https://mirror.ams1.nl.leaseweb.net/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="LeaseWeb">LeaseWeb</a></h3> | ||||
| <h3><a href="https://mirror.serverion.com/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="Serverion">Serverion</a></h3> | ||||
| <h3><a href="https://pkg.opnsense.org/releases/mirror/" rel="noopener noreferrer" target="_blank" title="OPNsense">OPNsense</a></h3> | ||||
| </div>, <div class="download_section"> | ||||
| <h2>Turkey</h2> | ||||
| <h3><a href="https://mirror.verinomi.com/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="Verinomi">Verinomi</a></h3> | ||||
| </div>, <div class="download_section"> | ||||
| <h2>United Kingdom</h2> | ||||
| <h3><a href="https://www.mirrorservice.org/sites/opnsense.org/releases/mirror/" rel="noopener noreferrer" target="_blank" title="University of Kent">University of Kent</a></h3> | ||||
| </div>, <div class="download_section"> | ||||
| <h2>United States</h2> | ||||
| <h3><a href="https://mirrors.nycbug.org/pub/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="NYC*BUG (East Coast)">NYC*BUG (East Coast)</a></h3> | ||||
| <h3><a href="https://mirror.wdc1.us.leaseweb.net/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="LeaseWeb (East Coast)">LeaseWeb (East Coast)</a></h3> | ||||
| <h3><a href="https://mirror.sfo12.us.leaseweb.net/opnsense/releases/mirror/" rel="noopener noreferrer" target="_blank" title="LeaseWeb (West Coast)">LeaseWeb (West Coast)</a></h3> | ||||
| <h3><a href="https://mirrors.ocf.berkeley.edu/opnsense/" rel="noopener noreferrer" target="_blank" title="Open Computing Facility at UC Berkeley (Berkeley, California)">Open Computing Facility at UC Berkeley (Berkeley, California)</a></h3> | ||||
| </div>] | ||||
| Found the URL: https://opnsense.org | ||||
| Found the URL: / | ||||
| Found the URL: # | ||||
| Found the URL: https://opnsense.org/get-started/ | ||||
| Found the URL: # | ||||
| Found the URL: https://opnsense.org/blog/ | ||||
| Found the URL: https://shop.opnsense.com/ | ||||
| Found the URL: https://opnsense.org/download/ | ||||
| Found the URL: https://opnsense.org/opnsense/ | ||||
| Found the URL: https://opnsense.org/roadmap/ | ||||
| Found the URL: https://opnsense.org/features/ | ||||
| Found the URL: https://opnsense.org/partners/ | ||||
| Found the URL: https://opnsense.org/legal-guidelines/ | ||||
| Found the URL: https://opnsense.org/contact/ | ||||
| Found the URL: https://opnsense.org/get-started/ | ||||
| Found the URL: https://docs.opnsense.org/ | ||||
| Found the URL: https://opnsense.org/your-invited/ | ||||
| Found the URL: http://forum.opnsense.org/ | ||||
| Found the URL: https://docs.opnsense.org/ | ||||
| Found the URL: https://opnsense.org/donate/ | ||||
| Found the URL: mailto:project@opnsense.org | ||||
| Found the URL: / | ||||
| Found the URL: # | ||||
| Found the URL: https://opnsense.org/opnsense/ | ||||
| Found the URL: https://opnsense.org/roadmap/ | ||||
| Found the URL: https://opnsense.org/features/ | ||||
| Found the URL: https://opnsense.org/partners/ | ||||
| Found the URL: https://opnsense.org/legal-guidelines/ | ||||
| Found the URL: https://opnsense.org/contact/ | ||||
| Found the URL: https://opnsense.org/get-started/ | ||||
| Found the URL: https://opnsense.org/get-started/ | ||||
| Found the URL: https://docs.opnsense.org/ | ||||
| Found the URL: # | ||||
| Found the URL: https://opnsense.org/your-invited/ | ||||
| Found the URL: http://forum.opnsense.org/ | ||||
| Found the URL: https://docs.opnsense.org/ | ||||
| Found the URL: https://opnsense.org/donate/ | ||||
| Found the URL: https://opnsense.org/blog/ | ||||
| Found the URL: https://shop.opnsense.com/ | ||||
| Found the URL: https://opnsense.org/download/ | ||||
| Found the URL: https://opnsense.org/ | ||||
| Found the URL: https://opnsense.org/donate/ | ||||
| Found the URL: https://mirror.ams1.nl.leaseweb.net/opnsense/releases/25.1/OPNsense-25.1-dvd-amd64.iso.bz2 | ||||
| Found the URL: #full-mirror-listing | ||||
| Found the URL: https://docs.opnsense.org/manual/install.html#download-and-verification | ||||
| Found the URL: https://shop.opnsense.com/product/opnsense-business-edition/ | ||||
| Found the URL: https://www.amazon.de/Practical-OPNsense-Building-Enterprise-Firewalls/dp/3757805364/ | ||||
| Found the URL: https://shop.opnsense.com/product/opnsense-business-edition/ | ||||
| Found the URL: https://mynetworktraining.com/p/official-opnsense-introduction-course | ||||
| Found the URL: https://mirror.aarnet.edu.au/pub/opnsense/releases/mirror/ | ||||
| Found the URL: https://mirror.cloudfence.com.br/opnsense/releases/mirror/ | ||||
| Found the URL: https://opnsense.aivian.org/releases/mirror/ | ||||
| Found the URL: https://mirrors.pku.edu.cn/opnsense/releases/mirror/ | ||||
| Found the URL: https://mirror.venturasystems.tech/opnsense/releases/mirror/ | ||||
| Found the URL: https://mirrors.dotsrc.org/opnsense/releases/mirror/ | ||||
| Found the URL: https://opnsense.c0urier.net/releases/mirror/ | ||||
| Found the URL: https://mirror.cedia.org.ec/opnsense/releases/mirror/ | ||||
| Found the URL: https://mirror.ueb.edu.ec/opnsense/releases/mirror/ | ||||
| Found the URL: https://mirror.vraphim.com/opnsense/releases/mirror/ | ||||
| Found the URL: https://mirror.dns-root.de/opnsense/releases/mirror/ | ||||
| Found the URL: https://mirror.level66.network/opnsense-dist/releases/mirror/ | ||||
| Found the URL: https://mirror.uvensys.de/opnsense/releases/mirror/ | ||||
| Found the URL: https://mirror.fra10.de.leaseweb.net/opnsense/releases/mirror/ | ||||
| Found the URL: https://ftp.cc.uoc.gr/mirrors/opnsense/releases/mirror/ | ||||
| Found the URL: https://quantum-mirror.hu/mirrors/pub/opnsense | ||||
| Found the URL: https://mirrors.hopbox.net/opnsense/releases/mirror/ | ||||
| Found the URL: https://mirror1.isatisidc.ir/opnsense/releases/mirror/ | ||||
| Found the URL: https://mirror.amuksa.com/opnsense/releases/mirror/ | ||||
| Found the URL: https://mirror.techlabs.co.kr/opnsense/releases/mirror/ | ||||
| Found the URL: https://mirror.zzunipark.com/opnsense/releases/mirror/ | ||||
| Found the URL: https://mirror.hemino.net/opnsense/releases/mirror/ | ||||
| Found the URL: https://mirror.keiminem.com/opnsense/releases/mirror/ | ||||
| Found the URL: https://mirror.marwan.ma/opnsense/releases/mirror/ | ||||
| Found the URL: https://mirror.catalyst.net.nz/opnsense/releases/mirror/ | ||||
| Found the URL: https://mirror.leitecastro.com/opnsense/releases/mirror/ | ||||
| Found the URL: https://mirror.raiolanetworks.com/opnsense/releases/mirror/ | ||||
| Found the URL: https://opnsense-mirror.hiho.ch/releases/mirror/ | ||||
| Found the URL: https://mirror.init7.net/opnsense/releases/mirror/ | ||||
| Found the URL: https://mirror-opnsense.serverbase.ch/releases/mirror/ | ||||
| Found the URL: https://mirror.ntct.edu.tw/opnsense/releases/mirror/ | ||||
| Found the URL: https://mirror.ams1.nl.leaseweb.net/opnsense/releases/mirror/ | ||||
| Found the URL: https://mirror.serverion.com/opnsense/releases/mirror/ | ||||
| Found the URL: https://pkg.opnsense.org/releases/mirror/ | ||||
| Found the URL: https://mirror.verinomi.com/opnsense/releases/mirror/ | ||||
| Found the URL: https://www.mirrorservice.org/sites/opnsense.org/releases/mirror/ | ||||
| Found the URL: https://mirrors.nycbug.org/pub/opnsense/releases/mirror/ | ||||
| Found the URL: https://mirror.wdc1.us.leaseweb.net/opnsense/releases/mirror/ | ||||
| Found the URL: https://mirror.sfo12.us.leaseweb.net/opnsense/releases/mirror/ | ||||
| Found the URL: https://mirrors.ocf.berkeley.edu/opnsense/ | ||||
| Found the URL: mailto:project@opnsense.org | ||||
| Found the URL: mailto:sales@opnsense.com | ||||
| Found the URL: https://forum.opnsense.org/ | ||||
| Found the URL: https://web-cdn.bsky.app/profile/did:plc:vpna73dxrqinj6ttwh3wryxv | ||||
| Found the URL: https://www.linkedin.com/groups/6958160/ | ||||
| Found the URL: https://www.reddit.com/r/opnsense/?rdt=38653 | ||||
| Found the URL: https://github.com/opnsense | ||||
| Found the URL: /donate | ||||
| Found the URL: https://deciso.com | ||||
| Found the URL: https://opnsense.org/terms-conditions/ | ||||
| Found the URL: https://opnsense.org/privacy-en-cookies/ | ||||
							
								
								
									
										206
									
								
								opnsense/main.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										206
									
								
								opnsense/main.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,206 @@ | ||||
| import requests, schedule, time | ||||
| from bs4 import BeautifulSoup | ||||
| from whatDomain import * | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| OPNSNSMIRRORURL = "https://opnsense.org/download/#full-mirror-listing" | ||||
| 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 "https://" in inpurl: | ||||
|         outurl = inpurl[8:] | ||||
|     elif "http://" in inpurl: | ||||
|         outurl = inpurl[7:] | ||||
|     elif "http://" or "https://" not in url: | ||||
|         outurl = inpurl | ||||
|     else: | ||||
|         return -1 | ||||
| 
 | ||||
|     # how the fuck does it work? | ||||
|     # I mean I wrote this but I don't know why does it work. | ||||
|     i = 0 | ||||
|     for char in outurl: | ||||
|         i += 1 | ||||
|         if char == "/": | ||||
|             outurl = outurl[:i] | ||||
| 
 | ||||
|     if char == "/": | ||||
|         outurl = outurl[:-1] | ||||
|     return outurl | ||||
| 
 | ||||
| 
 | ||||
| def getFreshData(): | ||||
|     payload = requests.get(DEBMIRRORURL) | ||||
|     soup = BeautifulSoup(payload.content, "html.parser") | ||||
|     return soup | ||||
| 
 | ||||
| 
 | ||||
| def sanitizeUrlsGodWhatTheFuckIsThis(SoupInput: BeautifulSoup): | ||||
| 
 | ||||
|     outMirrorDict = {} | ||||
|     current_country = None | ||||
| 
 | ||||
|     # Iterate through all table rows | ||||
|     for table in SoupInput.find_all("table"): | ||||
|         for row in table.find_all("tr"): | ||||
|             # Check for country name in a full-row header (<strong><big>) | ||||
|             strong = row.find("strong") | ||||
|             if strong: | ||||
|                 country_name = strong.get_text(strip=True) | ||||
|                 if country_name in target_countries: | ||||
|                     current_country = country_name | ||||
|                 else: | ||||
|                     current_country = None | ||||
|                 continue  # move to next row | ||||
| 
 | ||||
|             # Check for inline country name in first column | ||||
|             cols = row.find_all("td") | ||||
|             if len(cols) >= 2: | ||||
|                 possible_country = cols[0].get_text(strip=True) | ||||
|                 link_tag = cols[1].find("a", href=True) | ||||
|                 if possible_country in target_countries: | ||||
|                     current_country = possible_country | ||||
|                 if current_country and link_tag: | ||||
|                     url = link_tag['href'] | ||||
|                     if current_country not in outMirrorDict: | ||||
|                         outMirrorDict[current_country] = [] | ||||
|                     outMirrorDict[current_country].append(url) | ||||
| 
 | ||||
|     outMirrorDict.update({"Security": DEBSECURITYURL}) | ||||
|     outMirrorDict.update({"Extras": EXTRASURL}) | ||||
| 
 | ||||
|     return outMirrorDict | ||||
| 
 | ||||
| def LeJob(): | ||||
| 
 | ||||
|     print("Starting lookup") | ||||
| 
 | ||||
|     LeSoup = getFreshData() | ||||
| 
 | ||||
|     LeMirrorDict = sanitizeUrlsGodWhatTheFuckIsThis(LeSoup) | ||||
| 
 | ||||
|     # print(LeMirrorDict) | ||||
| 
 | ||||
|     with open(IPv4FILE, "r",) as fR, open(IPv4FILE, "w",) as fW: | ||||
| 
 | ||||
|         for key, urls in LeMirrorDict.items(): | ||||
|             # print(urls) | ||||
|             if key in target_countries: | ||||
|                  | ||||
|                 for url in urls: | ||||
|                     # print(url) | ||||
|                      | ||||
|                     if url not in fR: | ||||
| 
 | ||||
|                         goodurl = sanitizeURL(url) | ||||
|                         # print(goodurl) | ||||
| 
 | ||||
|                         ip4Dict = ermWhatATheIpFromDomainYaCrazy(goodurl) | ||||
| 
 | ||||
|                         if ip4Dict == -1: | ||||
|                             continue | ||||
| 
 | ||||
|                         for key, ip in ip4Dict.items(): | ||||
|                             print(ip) | ||||
| 
 | ||||
|                             fW.write(ip + "/32" +  "\n") | ||||
|                          | ||||
| 
 | ||||
|     with open(IPv6FILE, "r",) as fR, open(IPv6FILE, "w",) as fW: | ||||
| 
 | ||||
|         for key, urls in LeMirrorDict.items(): | ||||
|             if key in target_countries: | ||||
|                  | ||||
|                 for url in urls: | ||||
|                      | ||||
|                     if url not in fR: | ||||
| 
 | ||||
|                         goodurl = sanitizeURL(url) | ||||
|                         # print(goodurl) | ||||
| 
 | ||||
|                         ip6Dict = ermWhatAAAATheIpFromDomainYaCrazy(goodurl) | ||||
| 
 | ||||
|                         if ip6Dict == -1: | ||||
|                             continue | ||||
| 
 | ||||
|                         for key, ip in ip6Dict.items(): | ||||
|                             # print(ip) | ||||
| 
 | ||||
|                             fW.write(ip + "/128" + "\n") | ||||
| 
 | ||||
| 
 | ||||
| # schedule.every().day.at("12:45").do(LeJob) | ||||
| # schedule.every().day.at("17:44").do(LeJob) | ||||
| 
 | ||||
| # while True: | ||||
| #     schedule.run_pending() | ||||
| #     print("Waiting...") | ||||
| #     time.sleep(30)  #Wait one minute | ||||
| #     # LeJob() | ||||
| 
 | ||||
| gigalist = [] | ||||
| 
 | ||||
| payload = requests.get(OPNSNSMIRRORURL) | ||||
| soup = BeautifulSoup(payload.content, "html.parser") | ||||
| 
 | ||||
| # print(soup) | ||||
| 
 | ||||
| # divs = soup.find_all("div", {"class": "download_section"}) | ||||
| 
 | ||||
| for data in soup.find_all('div', class_='download_section'): | ||||
|     for a in data.find_all('a', href=True): | ||||
| 
 | ||||
|         url = a['href'] | ||||
| 
 | ||||
|         saniturl = sanitizeURL(url) | ||||
| 
 | ||||
|         print(saniturl) | ||||
|         IPv4Dict = ermWhatATheIpFromDomainYaCrazy(saniturl) | ||||
|         IPv6Dict = ermWhatAAAATheIpFromDomainYaCrazy(saniturl) | ||||
| 
 | ||||
|         if IPv4Dict == -1: | ||||
|             print(f"ERROR RESOLVING {saniturl} IPv4 address") | ||||
|             continue | ||||
|         elif IPv6Dict == -1: | ||||
|             print(f"ERROR RESOLVING {saniturl} IPv6 address") | ||||
|             continue | ||||
|          | ||||
|         for key, ip in IPv4Dict.items(): | ||||
|             print(f"Found the ipv4: {ip}") | ||||
| 
 | ||||
|         for key, ip in IPv6Dict.items(): | ||||
|             print(f"Found the ipv6: {ip}") | ||||
| 
 | ||||
|         # print(a.get('href')) #for getting link | ||||
|         # print(a.text) #for getting text between the link | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| # for a in soup.find_all("div", {"class": "download_section"}, "a", href=True): | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| # h2zz = divs = soup.find_all("h3") | ||||
| 
 | ||||
| # print(f" one link is: {h2zz}") | ||||
							
								
								
									
										4
									
								
								opnsense/requirements.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								opnsense/requirements.txt
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | ||||
| beautifulsoup4==4.13.4 | ||||
| requests==2.32.3 | ||||
| schedule==1.2.2 | ||||
| nslookup==1.8.1 | ||||
							
								
								
									
										93
									
								
								opnsense/whatDomain.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								opnsense/whatDomain.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,93 @@ | ||||
| #from nslookup import Nslookup | ||||
| from typing import Optional, Annotated | ||||
| import dns, dns.resolver | ||||
| 
 | ||||
| # https://www.codeunderscored.com/nslookup-python/ | ||||
| 
 | ||||
| def ermWhatATheIpFromDomainYaCrazy(inpDomainNameOrSomething: Annotated[str, "Domain name to lookup IP for"]): | ||||
|     #dns_query = Nslookup() | ||||
|     """ | ||||
|     Tells you what IPv4 address/es a domain point to. | ||||
|     Returns: | ||||
|         dict: A dictionary with IP addresses associated with that domain. | ||||
| 
 | ||||
|     """ | ||||
| 
 | ||||
|     # i = 0 | ||||
|     outDict = {}  | ||||
| 
 | ||||
|     #result = dns_query.dns_lookup("example.com") | ||||
|     #result = Nslookup.dns_lookup(inpDomainNameOrSomething) | ||||
|     try: | ||||
|         result = dns.resolver.resolve(inpDomainNameOrSomething, 'A') | ||||
|     except dns.resolver.NoAnswer: | ||||
|         return -1 | ||||
|     except dns.resolver.NoNameservers or dns.resolver.LifetimeTimeout: | ||||
|         return -1 | ||||
|     for i, something in enumerate(result): | ||||
|         outDict[i] = something.to_text() | ||||
|         # i += 1 | ||||
| 
 | ||||
|     return outDict | ||||
| 
 | ||||
| def ermWhatAAAATheIpFromDomainYaCrazy(inpDomainNameOrSomething: Annotated[str, "Domain name to lookup IP for"]): | ||||
|     #dns_query = Nslookup() | ||||
|     """ | ||||
|     Tells you what IPv6 address/es a domain point to. | ||||
|     Returns: | ||||
|         dict: A dictionary with IP addresses associated with that domain. | ||||
| 
 | ||||
|     """ | ||||
| 
 | ||||
| 
 | ||||
|     # i = 0 | ||||
|     outDict = {}  | ||||
| 
 | ||||
|     #result = dns_query.dns_lookup("example.com") | ||||
|     #result = Nslookup.dns_lookup(inpDomainNameOrSomething) | ||||
|     try: | ||||
|         result = dns.resolver.resolve(inpDomainNameOrSomething, 'AAAA') | ||||
|     except dns.resolver.NoAnswer: | ||||
|         return -1 | ||||
|     except dns.resolver.NoNameservers or dns.resolver.LifetimeTimeout: | ||||
|         return -1 | ||||
|     for i, something in enumerate(result): | ||||
|         outDict[i] = something.to_text() | ||||
|         # i += 1 | ||||
| 
 | ||||
|     return outDict | ||||
| 
 | ||||
| 
 | ||||
| def ermWhatPTRTheIpFromDomainYaCrazy(inpIpAddressOrSomething: Annotated[str, "IP address to lookup domain for"]): | ||||
|     #dns_query = Nslookup() | ||||
|     """ | ||||
|     Tells you what IPv6 address/es a domain point to. | ||||
|     Returns: | ||||
|         dict: A dictionary with IP addresses associated with that domain. | ||||
| 
 | ||||
|     """ | ||||
| 
 | ||||
|     whatToCheck = inpIpAddressOrSomething + ".in-addr.arpa" | ||||
| 
 | ||||
| 
 | ||||
|     # i = 0 | ||||
|     outDict = {} | ||||
| 
 | ||||
|     #result = dns_query.dns_lookup("example.com") | ||||
|     #result = Nslookup.dns_lookup(inpDomainNameOrSomething) | ||||
|     try: | ||||
|         result = dns.resolver.resolve(whatToCheck, 'PTR') | ||||
|     except dns.resolver.NoAnswer: | ||||
|         return -1 | ||||
|     except dns.resolver.NoNameservers: | ||||
|         return -1 | ||||
|     for i, something in enumerate(result): | ||||
|         outDict[i] = something.to_text() | ||||
|         # i += 1 | ||||
| 
 | ||||
|     return outDict | ||||
| 
 | ||||
| 
 | ||||
| #print(ermWhatATheIpFromDomainYaCrazy("fubukus.net")) | ||||
| #print(ermWhatAAAATheIpFromDomainYaCrazy("fubukus.net")) | ||||
| #print(ermWhatPTRTheIpFromDomainYaCrazy("192.168.1.226")) | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 YuruC3
						YuruC3