From a7a9131ed6ab6751607e28007ff11fea5018804d Mon Sep 17 00:00:00 2001 From: Your Name Date: Sat, 18 Mar 2023 23:41:24 +0530 Subject: [PATCH] Save json and CSV --- subdomain-Enum.py | 50 +++++++++++++++++++++++++++++++---------------- 1 file changed, 33 insertions(+), 17 deletions(-) diff --git a/subdomain-Enum.py b/subdomain-Enum.py index f7d3bed..56235bc 100644 --- a/subdomain-Enum.py +++ b/subdomain-Enum.py @@ -1,25 +1,41 @@ -#!/usr/local/bin/python import requests import json +import csv import os -print ("\nSubdomain Enumeration Script\n") -def get_sub_domains(domain,filepath): +from datetime import datetime + +print("\nSubdomain Enumeration Script\n") + +def get_sub_domains(domain, json_filename, csv_filename): url = "https://api.securitytrails.com/v1/domain/"+domain+"/subdomains" - #print(url) querystring = {"children_only":"true"} headers = { - 'accept': "application/json", - 'apikey': "APIKEY" + 'accept': "application/json", + 'apikey': "APIKEY" } response = requests.request("GET", url, headers=headers, params=querystring) - result_json=json.loads(response.text) - sub_domains=[i+'.'+domain for i in result_json['subdomains']] - f=open(filepath,'w+') - for i in sub_domains: - f.write(i+'\n') - f.close() - return sub_domains - -domain=input("\nEnter Domain name : ") -filepath=input("\nPlease provide a file name to save : ") -get_sub_domains(domain,filepath) + data = json.loads(response.text) + + # Save the JSON response to a file + with open(json_filename, mode='w') as file: + json.dump(data, file, indent=4) + + subdomains = data.get("subdomains", []) + subdomain_list = [[subdomain] for subdomain in subdomains] + + # Save subdomains to a CSV file + with open(csv_filename, mode='w', newline='') as file: + writer = csv.writer(file) + writer.writerow(["Subdomain"]) + writer.writerows(subdomain_list) + + return subdomains + +domain = input("\nEnter Domain name: ") +now = datetime.now() +date_time = now.strftime("%Y-%m-%d %H:%M:%S") +json_filename = f"{domain}_data.json" +csv_filename = f"{domain}_subdomains.csv" +subdomains = get_sub_domains(domain, json_filename, csv_filename) + +print(f"\n{len(subdomains)} subdomains found and saved in '{csv_filename}' and JSON response saved in '{json_filename}' file.")