Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/paulsec/api-dnsdumpster.com
OSINT (Разведка открытых источников)РазведкаСбор информацииСетевая безопасностьТестирование на ПроникновениеПеречисление ПоддоменовАнализ DNS
GitHubpaulsec/api-dnsdumpster.com

API-dnsdumpster.com

Python-клиент для dnsdumpster.com, предназначенный для получения DNS-записей, поддоменов и сетевых карт в целях разведки и исследований в области безопасности.

Репозиторий
2838675 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

DNSDumpster API (НЕОФИЦИАЛЬНЫЙ)

Tests PyPI version Python Versions License

⚠️ ВАЖНОЕ ПРЕДУПРЕЖДЕНИЕ: Это НЕОФИЦИАЛЬНАЯ обёртка API для dnsdumpster.com, которая парсит публичный веб-сайт.

DNSDumpster.com предлагает официальный тарифный план API для коммерческого и интенсивного использования. Если вам нужен надёжный доступ производственного уровня, рассмотрите их официальный API: https://dnsdumpster.com/

Эту неофициальную обёртку следует использовать ответственно и в соответствии с условиями обслуживания DNSDumpster.

Обзор

Клиентская библиотека на Python для взаимодействия с dnsdumpster.com с целью получения DNS-записей и информации о поддоменах. Этот инструмент полезен для исследователей безопасности, специалистов по пентесту и сетевых администраторов для целей разведки.

Возможности

  • 🔍 Получение записей A, MX, NS и TXT для домена
  • 🌐 Извлечение информации о поддоменах
  • 🗺️ Загрузка изображений карт сети
  • 📊 Экспорт результатов в формат Excel
  • 🎯 Чистый API с аннотациями типов
  • ✅ Полное покрытие тестами
  • 📝 Полная обратная совместимость

Установка

Из PyPI (рекомендуется)

root@kitploit:~
pip install dnsdumpster

Из GitHub

root@kitploit:~
pip install git+https://github.com/PaulSec/API-dnsdumpster.com.git

Из исходного кода (разработка)

root@kitploit:~
# Клонировать репозиторий
git clone https://github.com/PaulSec/API-dnsdumpster.com
cd API-dnsdumpster.com

# Установить в режиме разработки
pip install -e .

# Установить зависимости для разработки
pip install -r requirements-dev.txt

Быстрый старт

root@kitploit:~
from dnsdumpster.DNSDumpsterAPI import DNSDumpsterAPI

# Инициализация API
api = DNSDumpsterAPI(verbose=True)

# Поиск по домену
results = api.search('example.com')

# Доступ к результатам
print(f"Домен: {results['domain']}")
print(f"DNS-записи: {results['dns_records']['dns']}")
print(f"MX-записи: {results['dns_records']['mx']}")
print(f"NS-записи: {results['dns_records']['ns']}")
print(f"TXT-записи: {results['dns_records']['txt']}")

Примеры использования

Базовый поиск по домену

root@kitploit:~
from dnsdumpster.DNSDumpsterAPI import DNSDumpsterAPI

api = DNSDumpsterAPI()
results = api.search('microsoft.com')

# Вывести все A-записи (поддомены)
for record in results['dns_records']['dns']:
    print(f"{record['host']} - {record['ip']} - {record['country']}")

Сохранение изображения карты сети

root@kitploit:~
import base64

results = api.search('example.com')

if results['image_data']:
    with open('network_map.png', 'wb') as f:
        f.write(base64.b64decode(results['image_data']))
    print(f"Карта сети сохранена! URL: {results['image_url']}")

Экспорт в Excel

root@kitploit:~
import base64

results = api.search('example.com')

if results['xls_data']:
    with open('results.xlsx', 'wb') as f:
        f.write(base64.b64decode(results['xls_data']))
    print("Файл Excel сохранён!")

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

root@kitploit:~
import requests
from dnsdumpster.DNSDumpsterAPI import DNSDumpsterAPI

# Создание пользовательской сессии с прокси
session = requests.Session()
session.proxies = {
    'http': 'http://proxy.example.com:8080',
    'https': 'https://proxy.example.com:8080',
}

api = DNSDumpsterAPI(session=session)
results = api.search('example.com')

Обработка ошибок

root@kitploit:~
from dnsdumpster.DNSDumpsterAPI import (
    DNSDumpsterAPI,
    DNSDumpsterAPIError,
    DNSDumpsterRequestError,
    DNSDumpsterParseError
)

api = DNSDumpsterAPI()

try:
    results = api.search('example.com')
except DNSDumpsterRequestError as e:
    print(f"Сетевая ошибка: {e}")
except DNSDumpsterParseError as e:
    print(f"Ошибка парсинга: {e}")
except DNSDumpsterAPIError as e:
    print(f"Ошибка API: {e}")

Структура ответа API

Метод search() возвращает словарь следующей структуры:

root@kitploit:~
{
    'domain': 'example.com',
    'dns_records': {
        'dns': [  # A-записи (поддомены)
            {
                'host': 'subdomain.example.com',
                'ip': '192.0.2.1',
                'reverse_dns': 'reverse.dns.com',
                'asn': 'ASN:12345',
                'asn_name': 'Provider Name',
                'country': 'United States',
                'subnet': '192.0.2.0/24',
                'open_services': '80, 443',
                # Ключи для обратной совместимости:
                'domain': 'subdomain.example.com',
                'as': 'ASN:12345',
                'provider': 'Provider Name'
            }
        ],
        'mx': [  # MX-записи
            {
                'priority': '10',
                'server': 'mail.example.com',
                'ip': '198.51.100.1',
                'reverse_dns': 'mail.reverse.com',
                'asn': 'ASN:23456',
                'asn_name': 'Mail Provider',
                'country': 'Germany',
                'subnet': '198.51.100.0/24'
            }
        ],
        'ns': [  # NS-записи
            {
                'nameserver': 'ns1.example.com',
                'ip': '203.0.113.1',
                'reverse_dns': 'ns1.reverse.com',
                'asn': 'ASN:34567',
                'asn_name': 'DNS Provider',
                'country': 'United Kingdom',
                'subnet': '203.0.113.0/24'
            }
        ],
        'txt': [  # TXT-записи
            'v=spf1 include:_spf.example.com ~all',
            'google-site-verification=abcdef123456'
        ],
        'host': []  # Псевдоним для NS-записей (обратная совместимость)
    },
    'image_data': b'base64_encoded_image_bytes',  # или None
    'image_url': 'https://dnsdumpster.com/static/map/example.com.png',
    'xls_data': b'base64_encoded_excel_bytes',  # или None
    'xls_url': 'https://dnsdumpster.com/static/xlsx/example-uuid.xlsx'
}

Разработка

Настройка среды разработки

root@kitploit:~
# Клонировать репозиторий
git clone https://github.com/PaulSec/API-dnsdumpster.com
cd API-dnsdumpster.com

# Создать виртуальное окружение
python -m venv venv
source venv/bin/activate  # На Windows: venv\Scripts\activate

# Установить зависимости
pip install -r requirements.txt
pip install -r requirements-dev.txt

# Установить pre-commit хуки (опционально)
pip install pre-commit
pre-commit install

Запуск тестов

root@kitploit:~
# Запустить все тесты
pytest

# Запустить с покрытием
pytest --cov=dnsdumpster --cov-report=html

# Запустить конкретный файл тестов
pytest tests/test_parsing.py

# Запустить с подробным выводом
pytest -v

# Запустить конкретный тест
pytest tests/test_parsing.py::TestRetrieveResults::test_retrieve_results_basic

Качество кода

root@kitploit:~
# Форматирование кода с помощью black
black dnsdumpster/ tests/

# Сортировка импортов
isort dnsdumpster/ tests/

# Линтинг с помощью flake8
flake8 dnsdumpster/ tests/

# Проверка типов с помощью mypy
mypy dnsdumpster/

# Запустить все проверки качества
black dnsdumpster/ tests/ && isort dnsdumpster/ tests/ && flake8 dnsdumpster/ tests/ && mypy dnsdumpster/

Структура проекта

root@kitploit:~
API-dnsdumpster.com/
├── dnsdumpster/              # Основной пакет
│   ├── __init__.py
│   ├── DNSDumpsterAPI.py    # Основной класс API
│   ├── API_example.py       # Пример использования
│   └── requirements.txt
├── tests/                    # Набор тестов
│   ├── __init__.py
│   ├── conftest.py          # Фикстуры pytest
│   ├── test_parsing.py      # Модульные тесты
│   └── test_integration.py  # Интеграционные тесты
├── .github/
│   └── workflows/           # CI/CD рабочие процессы
│       ├── tests.yml
│       └── publish.yml
├── requirements.txt         # Производственные зависимости
├── requirements-dev.txt     # Зависимости для разработки
├── setup.py                 # Конфигурация пакета
├── README.md
└── LICENSE

Участие в разработке

Мы приветствуем ваш вклад! Вот как вы можете помочь:

Сообщение об ошибках

  • Используйте GitHub Issues для сообщения об ошибках
  • Укажите версию Python, ОС и сообщения об ошибках
  • Предоставьте минимальные воспроизводимые примеры

Отправка pull request

  1. Сделайте форк репозитория
  2. Создайте ветку функции (git checkout -b feature/amazing-feature)
  3. Внесите свои изменения
  4. Добавьте тесты для новой функциональности
  5. Убедитесь, что все тесты проходят (pytest)
  6. Запустите проверки качества кода (black, flake8, mypy)
  7. Зафиксируйте изменения (git commit -m 'Add amazing feature')
  8. Отправьте в ветку (git push origin feature/amazing-feature)
  9. Откройте Pull Request

Рекомендации по коду

  • Следуйте руководству по стилю PEP 8
  • Добавляйте аннотации типов ко всем функциям
  • Пишите docstring для публичных методов
  • Сохраняйте обратную совместимость
  • Поддерживайте покрытие тестами выше 80%
  • Обновляйте документацию для новых функций

Инструкции по тестированию

Модульные тесты

Тестирование отдельных методов парсинга без сетевых вызовов:

root@kitploit:~
pytest tests/test_parsing.py -v

Интеграционные тесты

Тестирование полного рабочего процесса API с имитацией HTTP-ответов:

root@kitploit:~
pytest tests/test_integration.py -v

Отчёт о покрытии

root@kitploit:~
pytest --cov=dnsdumpster --cov-report=term-missing

CI/CD

Проект использует GitHub Actions для:

  • Тестирования: Запускается при каждом push и PR на Python 3.8, 3.9, 3.10, 3.11, 3.12
  • Линтинга: Проверки качества кода с помощью flake8 и mypy
  • Публикации: Автоматическое развёртывание на PyPI при релизах с тегами

Лицензия

Этот проект лицензирован под MIT License — подробности см. в файле LICENSE.

Отказ от ответственности

Это неофициальный инструмент, который не связан с dnsdumpster.com и не одобрен им. Используйте ответственно и в соответствии с условиями обслуживания и robots.txt целевого веб-сайта. Авторы не несут ответственности за неправильное использование этого инструмента.

Поддержка

  • 📧 Для ошибок и запросов функций используйте GitHub Issues
  • 💬 Для общих вопросов начните обсуждение на GitHub
  • 🐦 Подпишитесь на автора в Twitter: @PaulWebSec

Журнал изменений

Версия 0.10 (текущая)

  • Полный рефакторинг кода с аннотациями типов
  • Улучшенная обработка ошибок с пользовательскими исключениями
  • Полный набор тестов с pytest
  • Улучшенная документация и примеры
  • CI/CD с GitHub Actions
  • Полная обратная совместимость сохранена

Предыдущие версии

Полную историю версий см. в CHANGELOG.md.

Благодарности

  • Оригинальный автор: PaulSec
  • Участники: см. CONTRIBUTORS.md
  • DNSDumpster.com за предоставление сервиса
Скачать инструмент