Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Préalable :
- # Installer venv si nécessaire
- sudo apt install python3-venv
- # Créer un environnement virtuel
- python3 -m venv myenv
- # Activer l'environnement virtuel
- source myenv/bin/activate
- # Installer requests dans l'environnement virtuel
- pip install requests
- # Exécuter votre script
- python exportDNSfromInternetBS.py
- # Désactiver l'environnement virtuel
- deactivate
- ==============================================================================
- Fichier Python exportDNSfromInternetBS.py
- ==============================================================================
- import requests
- import re
- # Remplacer par vos informations d'identification InternetBS
- API_KEY = '8Z26Y57A6Y77P6O8J2IR'
- API_PASSWORD = 'hSsdfm5G!g{g!;'
- # URL de base de l'API InternetBS
- BASE_URL = 'https://api.internet.bs'
- def get_domains():
- try:
- url = f'{BASE_URL}/Domain/List'
- params = {
- 'ApiKey': API_KEY,
- 'Password': API_PASSWORD,
- 'ResponseFormat': 'JSON'
- }
- response = requests.get(url, params=params)
- response.raise_for_status()
- data = response.json()
- print("Domains Response:", data) # Affiche la réponse brute
- return data.get('domain', [])
- except requests.exceptions.RequestException as e:
- print(f"Failed to fetch domains: {e}")
- return []
- def get_dns_zone(domain):
- try:
- url = f'{BASE_URL}/Domain/DnsRecord/List'
- params = {
- 'apiKey': API_KEY,
- 'password': API_PASSWORD,
- 'Domain': domain,
- 'ResponseFormat': 'TEXT' # Utilisation du format TEXT
- }
- print(f"Requesting DNS records for {domain} with URL: {url} and params: {params}") # Affiche l'URL et les paramètres utilisés
- response = requests.get(url, params=params)
- response.raise_for_status()
- data = response.text
- print(f"DNS Records for {domain}:\n{data}") # Affiche la réponse brute
- return data
- except requests.exceptions.RequestException as e:
- print(f"Failed to fetch DNS records for {domain}: {e}")
- return "Failed to fetch DNS records."
- def format_dns_records(dns_data):
- formatted_data = []
- for domain, records in dns_data.items():
- formatted_data.append(f"=========================================\n{domain}\n=========================================")
- # Extract and format different types of DNS records
- ns_records = re.findall(r'^[^\s]+\s+\d+\s+IN\s+NS\s+[^\s]+$', records, re.MULTILINE)
- a_records = re.findall(r'^[^\s]+\s+\d+\s+IN\s+A\s+[^\s]+$', records, re.MULTILINE)
- cname_records = re.findall(r'^[^\s]+\s+\d+\s+IN\s+CNAME\s+[^\s]+$', records, re.MULTILINE)
- txt_records = re.findall(r'^[^\s]+\s+\d+\s+IN\s+TXT\s+".*"$', records, re.MULTILINE)
- mx_records = re.findall(r'^[^\s]+\s+\d+\s+IN\s+MX\s+\d+\s+[^\s]+$', records, re.MULTILINE)
- if ns_records:
- formatted_data.append("\n; NS records =========================================")
- formatted_data.extend(ns_records)
- if a_records:
- formatted_data.append("\n; A records =========================================")
- formatted_data.extend(a_records)
- if cname_records:
- formatted_data.append("\n; CNAME records =========================================")
- formatted_data.extend(cname_records)
- if txt_records:
- formatted_data.append("\n; TXT records =========================================")
- formatted_data.extend(txt_records)
- if mx_records:
- formatted_data.append("\n; MX records =========================================")
- formatted_data.extend(mx_records)
- formatted_data.append("\n")
- return "\n".join(formatted_data)
- def main():
- domains = get_domains()
- if not domains:
- print("No domains found.")
- return
- dns_data = {}
- for domain in domains:
- dns_records = get_dns_zone(domain)
- dns_data[domain] = dns_records
- formatted_data = format_dns_records(dns_data)
- with open('formatted_dns_zones.txt', 'w') as file:
- file.write(formatted_data)
- print(f"Formatted DNS records have been saved to formatted_dns_zones.txt")
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement