nslookup с использованием альтернативы сервера в python - PullRequest
0 голосов
/ 20 ноября 2018

Я ищу замену Python для nslookup.

Другие источники указывают мне на 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() не позволяет вам направлять запрос через сервер.Мне нужно знать, "что этот сервер считает моим именем хоста".Не «каково мое локальное имя хоста».

1 Ответ

0 голосов
/ 20 ноября 2018

Вам необходимо создать объект распознавателя и установить для преобразователей 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.

...