Использование библиотеки dnspython

Vulners API Python

dnspython — это библиотека Python, которая предоставляет инструменты для работы с DNS (Domain Name System). Она позволяет выполнять запросы к DNS-серверам, получать информацию о записях доменных имен, а также получение доменного имени по IP-адресу.

Еще по теме: Написание спуфера на Python для подмены почты

Использование библиотеки dnspython

Модуль dnspython предоставляет метод dns.resolver(), который позволяет найти несколько записей из доменного имени. Функция принимает доменное имя и тип записи в качестве параметров. Ниже приведены некоторые типы записей:

  • Запись AAAA: это запись IP-адреса, которая используется для нахождения IP-адреса компьютера, подключенного к домену. Концептуально это похоже на запись A, но указывает только IPv6-адрес сервера вместо IP.
  • Запись NS: Запись Name Server (NS) предоставляет информацию о том, какой сервер является авторитетным для данного домена, то есть какой сервер имеет фактические записи DNS. Для домена возможны несколько записей NS, включая основные и резервные серверы имен.
  • Записи MX: MX означает запись обменника почты, которая является ресурсной записью, указывающей почтовый сервер, ответственный за прием электронных писем от имени домена. Она имеет значения приоритета в соответствии с приоритетизацией почты, если для балансировки нагрузки и повышения надежности присутствуют несколько почтовых серверов.
  • Записи SOA: SOA означает начало авторитета, это тип ресурсной записи, который содержит информацию об управлении зоной, особенно относящуюся к передачам зоны, определенным администратором зоны.
  • Запись CNAME: CNAME означает каноническую запись имени, которая используется для сопоставления доменного имени как псевдонима для другого домена. Она всегда указывает на другой домен и никогда не указывает непосредственно на IP.
  • Запись TXT: Эти записи содержат текстовую информацию источников, которые находятся вне домена. Записи TXT могут использоваться для различных целей, например, Google использует их для подтверждения владения доменом и обеспечения безопасности электронной почты.

Этот модуль позволяет выполнять запросы записей на DNS-серверах.

Установка может быть выполнена либо через репозиторий Python, либо скачиванием кода с репозитория  и запуском файла установки setup.py.

Самый быстрый способ установить — использовать репозиторий pip. Вы можете установить эту библиотеку с помощью команды:

Основные пакеты для этого модуля:

  • import dns
  • import dns.resolver

Информацию, которую можно получить для определенного домена:

  • Записи для почтовых серверов: response_MX = dns.resolver.query(‘domain’,’MX’)
  • Записи для серверов имен: response_NS = dns.resolver.query(‘domain’,’NS’)
  • Записи для IPV4-адресов: response_ipv4 = dns.resolver.query(‘domain’,’A’)
  • Записи для IPV6-адресов: response_ipv6 = dns.resolver.query(‘domain’,’AAAA’)

В следующем примере мы используем метод resolve() для получения списка IP-адресов для множества хостовых доменов с помощью подмодуля dns.resolver.

Для каждого домена мы получаем список IP-адресов.

Использование модуля dnspython

Также можем проверить, является ли один домен поддоменом другого с помощью метода is_subdomain() и проверить, является ли домен наддоменом другого с помощью метода is_superdomain().

При выполнении предыдущего кода мы видим, что домен python.org является наддоменом mail.python.org.

python dnspython

Можно получить доменное имя по IP-адресу с использованием подмодуля dns.reversename и метода from_address().

dnspython

Также можем получить IP-адрес по доменному имени с использованием подмодуля dns.reversename и метода to_address().

dnspython

Основным отличием DNSPython по сравнению с другими инструментами запросов DNS, такими как dig или nslookup, является возможность контроля результата запросов из Python, а затем использование этой информации для других целей в скрипте.

Подробности в официальной документации.

ПОЛЕЗНЫЕ ССЫЛКИ:

Ban32

Хакер-самоучка, который может взломать тостер и настроить его на отправку вам утреннего приветствия в коде Морзе.

Добавить комментарий