¿Hay un módulo python que haga lo mismo que nslookup? Estoy planeando utilizar nslookup para buscar información sobre el dominio de una URL que se eliminará. Sé que puedo usar os.sys para llamar a nslookup pero me pregunto si ya hay un módulo de python para esto. ¡Gracias de antemano!módulo python para nslookup
Respuesta
Debe utilizar biblioteca de sockets http://docs.python.org/2/library/socket.html
llamada a la función del sistema no es una buena práctica en este caso.
Es necesario utilizar DNSPython
import dns.resolver
answers = dns.resolver.query('dnspython.org', 'MX')
for rdata in answers:
print 'Host', rdata.exchange, 'has preference', rdata.preference
estoy usando el siguiente código:
import socket
ip_list = []
ais = socket.getaddrinfo("www.yahoo.com",0,0,0,0)
for result in ais:
ip_list.append(result[-1][0])
ip_list = list(set(ip_list))
Tenga en cuenta que socket.getfqdn()
puede devolver el nombre calificado completo de un nombre de host. Ver: http://docs.python.org/2/library/socket.html?highlight=socket.getaddrinfo#socket.getfqdn
Por ejemplo:
python -c 'import socket; print(socket.gethostname()); print(socket.getfqdn());'
myserver
myserver.mydomain.local
Pero el resultado depende de la configuración /etc/hosts
. Si usted tiene:
$ cat /etc/hosts
127.0.0.1 myserver localhost.localdomain localhost
El resultado de socket.getfqdn()
será:
python -c 'import socket; print(socket.getfqdn());'
localhost.localdomain
Oooops! Para solucionar esto, la única solución que conozco es cambiar la /etc/hosts
de la siguiente manera:
$ cat /etc/hosts
127.0.0.1 myserver myserver.mydomain.local localhost.localdomain localhost
espero que ayude!
el problema es que socket.gethostbyname() devuelve solo una dirección IP. nslookup devuelve tantos como tiene. que utilizo:
import subprocess
process = subprocess.Popen(["nslookup", "www.google.com"], stdout=subprocess.PIPE)
output = process.communicate()[0].split('\n')
ip_arr = []
for data in output:
if 'Address' in data:
ip_arr.append(data.replace('Address: ',''))
ip_arr.pop(0)
print ip_arr
se imprimirá:
['54.230.228.101', '54.230.228.6', '54.230.228.37', '54.230.228.80', '54.230.228.41', '54.230.228.114', '54.230.228.54', '54.230.228.23']
que necesitaba para localizar a un AWS registros en la Ruta 53 utilizando CNAMES. AKA messaging.myCompany.com
a moreSpecificMessaging.myCompanyInternal.com
También uso Socket, pero es otro método bastante oculto.
import socket
addr1 = socket.gethostbyname_ex('google.com')
print(addr1)
https://docs.python.org/3/library/socket.html#socket.gethostbyname_ex
- 1. Módulo SSH para python
- 2. módulo de rastreo de Python para principiantes
- 3. Módulo de Python para shellquote/unshellquote?
- 4. Python: módulo para trazar diagramas de Gantt
- 5. Módulo Python para el marcado wiki
- 6. Módulo Python para optimización global variable múltiple
- 7. módulo usb de plataforma cruzada para python?
- 8. Módulo de Python para plister binario
- 9. ¿Dónde encontrar el módulo win32api para Python?
- 10. Boost Python: Problemas para importar un módulo
- 11. Dependencia del módulo Python
- 12. Módulo Python MySQL
- 13. python "módulo de cadena"?
- 14. módulo dinámico en Python
- 15. Módulo Python para habilitar colores ANSI para stdout en Windows?
- 16. Módulo de estantería Python pregunta
- 17. Python Clase vs. Módulo Atributos
- 18. diseño de módulo de python
- 19. Módulo Python OCR en Linux?
- 20. Python: ¿Ningún módulo llamado contextlib?
- 21. Desarrollo del módulo de Python
- 22. Captura de salida de shell nslookup con C#
- 23. descargar un módulo en Python
- 24. Instalación módulo lxml en Python
- 25. Python: La importación de módulo
- 26. Operador de módulo en Python
- 27. Python y el módulo hashlib
- 28. Python cruzada módulo de registro
- 29. falta el módulo python bz2
- 30. dinámicamente importar módulo de Python
Mientras verdadera y completa, esto mira hacia arriba de los sistemas locales de host/FQDN. El OP preguntó cómo buscar nombres dns externos para raspar el sitio. Todavía +1 para la información. – VooDooNOFX