Spaces:
Sleeping
Sleeping
import dns.resolver | |
from rich.console import Console | |
from rich.progress import track | |
from rich.table import Table | |
console = Console() | |
class sub_enum(): | |
def display_urls(sd_data: list[str], count: int) -> None: | |
console = Console() | |
table = Table(title=f"GVA Subdomain report. found out of {count}", show_header=True, header_style="bold") | |
table.add_column("Index", justify="right", style="cyan") | |
table.add_column("URL", style="green") | |
for index, url in enumerate(sd_data): | |
table.add_row(str(index), url) | |
console.print(table) | |
def sub_enumerator(self, target: str, list: str) -> str: | |
sd_data = [] | |
s_array = [] | |
count: int = 0 | |
with open(list, "r") as file: | |
for line in file: | |
subdomain_key = line.strip() | |
s_array.append(subdomain_key) | |
for subd in track(s_array): | |
try: | |
ip_value = dns.resolver.resolve(f'{subd}.{target}', 'A') | |
if ip_value: | |
sd_data.append(f'{subd}.{target}') | |
if f"{subd}.{target}" in sd_data: | |
count = count + 1 | |
else: | |
pass | |
except dns.resolver.NXDOMAIN: | |
pass | |
except dns.resolver.NoAnswer: | |
pass | |
except KeyboardInterrupt: | |
print('Ended') | |
quit() | |
self.display_urls(sd_data, count) | |
return 'Done' | |