Czy istnieje moduł-python, który robi to samo, co robi nslookup? Mam zamiar użyć nslookup do wykopywania niektórych informacji dotyczących domeny URL, który ma zostać złomowany. Wiem, że mogę użyć os.sys, aby zadzwonić do nslookup, ale zastanawiam się, czy jest już python-moduł dla tego. Z góry dziękuję!moduł python dla nslookup
Odpowiedz
Należy użyć bibliotekę wtykowego http://docs.python.org/2/library/socket.html
wywołanie funkcji systemowej nie jest dobrą praktyką w tym przypadku.
Trzeba użyć DNSPython
import dns.resolver
answers = dns.resolver.query('dnspython.org', 'MX')
for rdata in answers:
print 'Host', rdata.exchange, 'has preference', rdata.preference
używam następujący kod:
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))
Zauważ, że socket.getfqdn()
może wrócić pełną kwalifikowaną nazwę hosta. Zobacz: http://docs.python.org/2/library/socket.html?highlight=socket.getaddrinfo#socket.getfqdn
Na przykład:
python -c 'import socket; print(socket.gethostname()); print(socket.getfqdn());'
myserver
myserver.mydomain.local
Ale wynik zależy od konfiguracji /etc/hosts
. Jeśli masz:
$ cat /etc/hosts
127.0.0.1 myserver localhost.localdomain localhost
Wynik socket.getfqdn()
będą:
python -c 'import socket; print(socket.getfqdn());'
localhost.localdomain
Oooops! Aby rozwiązać, że jedynym rozwiązaniem wiem jest zmiana /etc/hosts
następująco:
$ cat /etc/hosts
127.0.0.1 myserver myserver.mydomain.local localhost.localdomain localhost
Nadzieję, że to pomaga!
Problem polega na tym, że socket.gethostbyname() zwraca tylko jeden adres IP. nslookup zwraca tyle, ile ma. używam:
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
zostanie wydrukowana:
['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']
Musiałem wyśledzić rekordy w AWS Route 53 przy użyciu CNAMES. AKA messaging.myCompany.com
do moreSpecificMessaging.myCompanyInternal.com
Używam również Socket, ale innej raczej ukrytej metody.
import socket
addr1 = socket.gethostbyname_ex('google.com')
print(addr1)
https://docs.python.org/3/library/socket.html#socket.gethostbyname_ex
- 1. Python moduł traceback dla początkujących
- 2. Zalecany moduł kryptograficzny Python?
- 3. Instalacja win32gui moduł python
- 4. Python cross-moduł rejestrowania
- 5. Moduł Python SSH/SFTP?
- 6. Makiety cały moduł w python
- 7. Jak przedłużyć moduł python? (python-twitter)
- 8. Python moduł import z folderu
- 9. Utwórz pojedynczy moduł wykonywalny python
- 10. Python instalowanie błędu xlwt moduł
- 11. Jak zainstalować moduł strony trzeciej dla postgres pl/python?
- 12. Czy istnieje moduł websocket serwera Python 3?
- 13. Połączony moduł rozszerzający Python i Ruby
- 14. Python moduł „os” nie ma atrybutu „mknod”
- 15. moduł lalek dla wahadłowych
- 16. Moduł dla Sailsjs
- 17. Python: określ rzeczywisty moduł prądowy (nie __main__)
- 18. Jak zainstalować moduł gi dla anakonda python3?
- 19. Python moduł BeautifulSoup wydobywające kotwice href
- 20. Python używa globalnego vs określając moduł
- 21. Jak dodać moduł do autouzupełniania w Python?
- 22. moduł python import z pakietu nadrzędnego
- 23. Jak zainstalować moduł Python bez pliku setup.py?
- 24. błąd Python, " 'moduł' obiekt ma atrybut 'lstrip'"
- 25. Python. - Najlepszy Moduł pisać do plików XLS
- 26. Python: Moduł wnioski rzuca wyjątek z Gevent
- 27. Python moduł rejestrowania drukuje wiersze wielokrotnie
- 28. Jak zainstalować moduł python z szefem kuchni?
- 29. Moduł porównania obrazu dla PHP
- 30. Moduł perla dla perlatora Elastisearch
Chociaż prawdziwe i dokładne, to patrzy lokalnych systemów męska hostname/FQDN. OP zapytał, jak wyszukać zewnętrzne nazwy DNS dla skrobania witryny. Nadal +1 dla informacji. – VooDooNOFX