Ищу замену nslookup на python.
Другие источники указали мне на socket.getaddrinfo (). Однако это, похоже, не позволяет мне указать сервер для разрешения имени хоста, который nslookup поддерживает и требует.
C:\Users\Administrator>nslookup 10.0.11.6 coolserver
Server: coolserv.coolserver.com
Address: 10.0.1.1
Name: the-host-name-i-want.blah.com
Address: 10.0.11.6
Это требование, чтобы я мог выполнять поиск через "coolserver". На что способны socket или любая другая библиотека Python?
Я знаю, что могу просто вызвать nslookup напрямую через подпроцесс.
Обновлено:
Как объяснено выше, это не дубликат модуль python для nslookup
Насколько мне известно, socket.getaddrinfo() не позволяет маршрутизировать запрос через сервер. Мне нужно знать, «что этот сервер думает о моем имени хоста». Не "каково мое локальное имя хоста".
Не дубликат. Как я сказал в OP, socket.getaddrinfo не позволяет вам указывать сервер, а это функциональность, которая мне нужна.
Вы ищете dnspython?
Возможный дубликат Установите конкретный DNS-сервер с помощью dns.resolver (pythondns)






Вам необходимо создать объект преобразователя и настроить преобразователи на DNS-серверы, которые вы хотите использовать:
from dns import *
resolver = resolver.Resolver()
resolver.nameservers = ['8.8.8.8']
a = resolver.query('duckduckgo.com','A')
a.rrset.items[0].address #'54.241.2.241'
Чтобы выполнить обратный поиск, сделайте следующее:
r =reversename.from_address('50.18.200.106')
ra = resolver.query(r,'PTR')
ra.rrset.items[0].to_text() # 'ec2-50-18-200-106.us-west-1.compute.amazonaws.com.'
Примечание. ec2-50-18-200-106.us-west-1.compute.amazonaws.com - это веб-сервер duckduckgo.com.
Возможно, вам потребуется установить dnspython.
Возможный дубликат модуль python для nslookup