Я видел, как выглядит текстовое представление HTTP-запроса, но как выглядит DNS-запрос? Где в данных находится местоположение URL, который вы пытаетесь найти? Кроме того, как форматируется ответ?
32
Я видел, как выглядит текстовое представление HTTP-запроса, но как выглядит DNS-запрос? Где в данных находится местоположение URL, который вы пытаетесь найти? Кроме того, как форматируется ответ?
Ответы:
Это необработанный дамп из Wireshark DNS-запроса.
Часть DNS начинается с 24 1a:
А вот и разбивка:
И ответ, снова начиная с 24 1а:
Сломать:
Редактировать:
Обратите внимание, что если ваш реальный вопрос «как мне написать DNS-сервер?», То есть два соответствующих ответа:
Edit (2):
Запрос был отправлен с использованием
host
на linux box:Если вы работаете в Windows, вы можете использовать
nslookup
источник
/questions/173187/what-does-a-dns-request-look-like
включен ли в запрос?Расположение данных запроса DNS описано в RFC 1035 . Я думаю, что это немного бессмысленно копировать текст здесь ...
источник
К DNS-запросам и ответам лучше всего подходить, используя анализатор протоколов - Wireshark - это хороший кроссплатформенный инструмент, который может собирать и деконструировать запросы и ответы на их различные части. Хорошее введение в структуру DNS-запросов и ответов в Firewall.cx здесь .
DNS-запросы содержат вопросы, в которых указываются имя (или, возможно, несколько произвольное текстовое поле) и тип записи - содержание ответа будет зависеть от типа. Большинство запросов - это простой прямой поиск имени сервера в поисках ip-адреса в ответе (тип A), но некоторые будут искать дополнительную информацию о самих серверах имен (тип NS), почтовых записях (тип MX) и других сервисах (тип SRV, который будет возвращать имена, порты, веса и приоритеты). Ответы DNS содержат ответы на эти вопросы, возможно, более одного, если запрос требует этого и не всегда являются просто ip-адресами.
Еще одно уточнение - DNS не разрешает URL-адреса. В большинстве сценариев, связанных с URL-адресами, DNS используется только для того, чтобы система на стороне клиента могла найти ip-адрес серверной части URL-адреса, а все остальное обрабатывается другими протоколами.
источник
Если вы можете попасть на компьютер с Linux, вы можете запустить команду dig для поиска DNS. Эта утилита выполняет поиск и возвращает именно то, на что отвечает сервер имен. Например:
Все, что начинается с раздела «HEADER» - это то, что возвращается с сервера имен. Я предполагаю, что это то, что вы называете текстовым форматом, потому что это не формат реального пакета, а возвращаемый текст.
источник