Реализация DNS-сервера с поддержкой кэширования и обработкой различных типов записей.
- Прослушивание UDP порта 53
- Поддержка типов DNS-записей:
- A
- AAAA
- NS
- PTR
- Кэширование DNS-записей с учетом TTL
- Сохранение кэша между перезапусками
- Автоматическая очистка устаревших записей
- Мониторинг кэша в реальном времени
- Права администратора (для использования порта 53)
- Клонируйте репозиторий:
git clone https://github.com/Legionary-stack/CacheDNS.git
cd dns-cache-server- Запустите сервер:
sudo python DNS_server.pyПосле запуска сервер начнет прослушивать DNS-запросы. Для тестирования можно использовать утилиту dig или nslookup:
# A запись (IPv4)
dig A google.com @127.0.0.1
nslookup -type=A google.com 127.0.0.1
# AAAA запись (IPv6)
dig AAAA google.com @127.0.0.1
nslookup -type=AAAA google.com 127.0.0.1
# NS запись (nameserver)
dig NS google.com @127.0.0.1
nslookup -type=NS google.com 127.0.0.1
# PTR запись (обратное разрешение IP)
dig -x 8.8.8.8 @127.0.0.1
nslookup -type=PTR 8.8.8.8.in-addr.arpa 127.0.0.1
Текущее содержимое кэша:
============================================================
Записи типа A:
----------------------------------------
Домен: google.com
Данные: 216.58.210.174
Истекает: 2025-05-09 01:09:09
Секция: answers
----------------------------------------
Записи типа AAAA:
----------------------------------------
Домен: google.com
Данные: 2a00:1450:4026:805::200e
Истекает: 2025-05-09 01:09:16
Секция: answers
----------------------------------------
Записи типа NS:
----------------------------------------
Домен: google.com
Данные: ns2.google.com
Истекает: 2025-05-09 07:04:21
Секция: answers
----------------------------------------
Записи типа PTR:
----------------------------------------
Домен: 8.8.8.8.in-addr.arpa
Данные: dns.google
Истекает: 2025-05-09 01:45:15
Секция: answers
----------------------------------------
Банников Максим КН-203