๐Ÿ‘นINFORMACION DE TIPOS DE CONSULTAS DNS P4InfoTipoConsDNS.py

// Some code

```python
#!info de tipos de consyultas DNS - P4InfoTipoConsDNS.py - By P4IM0N

#!/usr/bin/env python
#_*_coding: utf8_*_

#------------------------------------------------
import dns.resolver
from tabulate import tabulate

#------------------------------------------------
banner = '''

__________  _____ .___        _____    ___________.__              _________                      ________    _______    _________
\______   \/  |  ||   | _____/ ____\___\__    ___/|__|_____   ____ \_   ___ \  ____   ____   _____\______ \   \      \  /   _____/
 |     ___/   |  ||   |/    \   __\/  _ \|    |   |  \____ \ /  _ \/    \  \/ /  _ \ /    \ /  ___/|    |  \  /   |   \ \_____  \ 
 |    |  /    ^   /   |   |  \  | (  <_> )    |   |  |  |_> >  <_> )     \___(  <_> )   |  \___ \ | !___!   \/    |    \/        }
 |____|  \____   ||___|___|  /__|  \____/|____|   |__|   __/ \____/ \______  /\____/|___|  /____  >_______  /\____|__  /_______  /
              |__|         \/                        |__|                  \/            \/     \/        \/         \/        \/ 
'''
print(banner)

#------------------------------------------------
def main():
    try:
        opciones = '''
        1 - nombre a direcciรณn IP (A)
        2 - servidores de nombres autoritativos (NS)
        3 - Localiza servidores de correo (MX)
        4 - Almacena datos en registros DNS (TXT)
        5 - btiene direcciรณn IPv6 (AAAA)
        6 - Detalles de servidor de autoridad (SOA)
        7 - Traduce direcciรณn IP a nombre (PTR)
        8 - Identifica servicios en dominios (SRV)
        9 - Versiรณn avanzada de consulta 1 (A6)
        10 - obterner todas las consultas (ANY)'''
        
        url_objetivo = input('Manito dame la URL de la que quieres obtener info del DNS: ')                        #?ingreso de la url obbjetivo
        informacion_DNS = []                                                                                       #?lista de informacion para la tabla informativa 
        continuar = True                                                                                           #?variable para controlar el loop while
        while continuar:                                                                                           #?como continuar es true se ejecuta el loop
            print(opciones)                                                                                        #?mostramos las opciones     
            opcion_elgida = int(input('Elige una opcion indicando el numero manito: '))                            #?forzamos la entrada del usuario para qeu sea un entero con int         
            
            if opcion_elgida == 1:                                                                                 #?condicional como los que continuan por cada opcion, si la opcion elegida por el usuario es igual a 1, pasara 
                url_objetivo_para_tipos_DNS = dns.resolver.resolve(url_objetivo,'A')                               #?con la libreria dns de python , usando dns.resolver con su metodo .resolve (query esta obsoleto) de esta forma nos permite darle dos parametros , el primero la url_objetivo y segundo el tipo de consulta aportando el codigo de consulta DNS que eligio el usuario en el menu de opciones.
                for info in url_objetivo_para_tipos_DNS:                                                           #?iteramos por cada elemento que nos dio resolve con la consulta
                    informacion_DNS.append([info])                                                                 #?a cada elemento que tuvimos de la consulta lo guardamos con append, como una lista de lista dentro de informacion DNS la cual la mostraremos en la tabla 
                tabla_informativa = tabulate(informacion_DNS,['nombre a direcciรณn IP'],tablefmt='grid')            #?creamos la tabla con sus patrametros
                print(tabla_informativa)
                decision = input('Manito queres continuar con las opciones de nuevo? (y/n)')                       #?consulatamos al manito si continua para ver si paramos el loop while cambiando a False si elige n
                if decision == 'y':
                    continuar = True
                    informacion_DNS = []                                                                           #?limpiamos la informacion de la tabla 
                else:
                    continuar = False                                                                              #?se cierra el loop while por que pasa a ser False la variable continuar
                    print('Gracias por usar mi sistema manito, saludos de P4IM0N')     
            
            elif opcion_elgida == 2:
                url_objetivo_para_tipos_DNS = dns.resolver.resolve(url_objetivo,'NS')
                for info in url_objetivo_para_tipos_DNS:
                    informacion_DNS.append([info])
                tabla_informativa = tabulate(informacion_DNS,['servidores de nombres autoritativos'],tablefmt='grid')
                print(tabla_informativa)
                decision = input('Manito queres continuar con las opciones de nuevo? (y/n)')
                if decision == 'y':
                    continuar = True
                    informacion_DNS = []
                else:
                    continuar = False
                    print('Gracias por usar mi sistema manito, saludos de P4IM0N')
            
            elif opcion_elgida == 3:
                url_objetivo_para_tipos_DNS = dns.resolver.resolve(url_objetivo,'MX')
                for info in url_objetivo_para_tipos_DNS:
                    informacion_DNS.append([info])
                tabla_informativa = tabulate(informacion_DNS,['Localiza servidores de correo'],tablefmt='grid')
                print(tabla_informativa)
                decision = input('Manito queres continuar con las opciones de nuevo? (y/n)')
                if decision == 'y':
                    continuar = True
                    informacion_DNS = []
                else:
                    continuar = False
                    print('Gracias por usar mi sistema manito, saludos de P4IM0N')
            
            elif opcion_elgida == 4:
                url_objetivo_para_tipos_DNS = dns.resolver.resolve(url_objetivo,'TXT')
                for info in url_objetivo_para_tipos_DNS:
                    informacion_DNS.append([info])
                tabla_informativa = tabulate(informacion_DNS,['Almacena datos en registros DNS'],tablefmt='grid')
                print(tabla_informativa)
                decision = input('Manito queres continuar con las opciones de nuevo? (y/n)')
                if decision == 'y':
                    continuar = True
                    informacion_DNS = []
                else:
                    continuar = False
                    print('Gracias por usar mi sistema manito, saludos de P4IM0N')
            
            elif opcion_elgida == 5:
                url_objetivo_para_tipos_DNS = dns.resolver.resolve(url_objetivo,'AAAA')
                for info in url_objetivo_para_tipos_DNS:
                    informacion_DNS.append([info])
                tabla_informativa = tabulate(informacion_DNS,['direcciรณn IPv6'],tablefmt='grid')
                print(tabla_informativa)
                decision = input('Manito queres continuar con las opciones de nuevo? (y/n)')
                if decision == 'y':
                    continuar = True
                    informacion_DNS = []
                else:
                    continuar = False
                    print('Gracias por usar mi sistema manito, saludos de P4IM0N')
            
            elif opcion_elgida == 6:
                url_objetivo_para_tipos_DNS = dns.resolver.resolve(url_objetivo,'SOA')
                for info in url_objetivo_para_tipos_DNS:
                    informacion_DNS.append([info])
                tabla_informativa = tabulate(informacion_DNS,['Detalles de servidor de autoridad'],tablefmt='grid')
                print(tabla_informativa)
                decision = input('Manito queres continuar con las opciones de nuevo? (y/n)')
                if decision == 'y':
                    continuar = True
                    informacion_DNS = []
                else:
                    continuar = False
                    print('Gracias por usar mi sistema manito, saludos de P4IM0N')
            
            elif opcion_elgida == 7:
                ip_pagina_objetivo = input('Dame la IP de la pagina que quieres saber su nombre de dominio DNS manito: ')
                ip_pagina_objetivo = ip_pagina_objetivo+'.in-addr.arpa'
                url_objetivo_para_tipos_DNS = dns.resolver.resolve(ip_pagina_objetivo,'PTR')
                for info in url_objetivo_para_tipos_DNS:
                    informacion_DNS.append([info])
                tabla_informativa = tabulate(informacion_DNS,['direcciรณn IP a nombre'],tablefmt='grid')
                print(tabla_informativa)
                decision = input('Manito queres continuar con las opciones de nuevo? (y/n)')
                if decision == 'y':
                    continuar = True
                    informacion_DNS = []
                else:
                    continuar = False
                    print('Gracias por usar mi sistema manito, saludos de P4IM0N')
            
            elif opcion_elgida == 8:
                url_objetivo_para_tipos_DNS = dns.resolver.resolve(url_objetivo,'SRV')
                for info in url_objetivo_para_tipos_DNS:
                    informacion_DNS.append([info])
                tabla_informativa = tabulate(informacion_DNS,['servicios en dominios'],tablefmt='grid')
                print(tabla_informativa)
                decision = input('Manito queres continuar con las opciones de nuevo? (y/n)')
                if decision == 'y':
                    continuar = True
                    informacion_DNS = []
                else:
                    continuar = False
                    print('Gracias por usar mi sistema manito, saludos de P4IM0N')
            
            elif opcion_elgida == 9:
                url_objetivo_para_tipos_DNS = dns.resolver.resolve(url_objetivo, 38)
                for info in url_objetivo_para_tipos_DNS:
                    informacion_DNS.append([info])
                tabla_informativa = tabulate(informacion_DNS,['nombre a direcciรณn IP AVANZADO'],tablefmt='grid')
                print(tabla_informativa)
                decision = input('Manito queres continuar con las opciones de nuevo? (y/n)')
                if decision == 'y':
                    continuar = True
                    informacion_DNS = []
                else:
                    continuar = False
                    print('Gracias por usar mi sistema manito, saludos de P4IM0N')
            
            elif opcion_elgida == 10:
                url_objetivo_para_tipos_DNS = dns.resolver.resolve(url_objetivo, 255)
                for info in url_objetivo_para_tipos_DNS:
                    informacion_DNS.append([info])
                tabla_informativa = tabulate(informacion_DNS,['TODAS LA CONSULTAS DNS'],tablefmt='grid')
                print(tabla_informativa)
                decision = input('Manito queres continuar con las opciones de nuevo? (y/n)')
                if decision == 'y':
                    continuar = True
                    informacion_DNS = []
                else:
                    continuar = False
                    print('Gracias por usar mi sistema manito, saludos de P4IM0N')                        
                
        
           
    except:
        print('algo salio mal manito :(')    

#------------------------------------------------
if __name__=='__main__':
    try:
        main()
    except KeyboardInterrupt:
        print('El programa se esta cerranddo manito ')
        exit() 
           
```

Last updated