Я пытаюсь реализовать обнаружение службы DNS в моем приложении (нет, я не прошу программного ответа). То, что я считаю, является одной из моих больших проблем - это генерация запроса. Я знаю, что мне нужно отправить многоадресную рассылку через порт 5353 и найти устройства типа _ipp._tcp и _print._tcp , но я не знаю, как должен выглядеть раздел с вопросом.

Например, в SSDP я отправил запрос, который выглядит следующим образом:

"M-SEARCH * HTTP/1.1\r\n"
"HOST: 239.255.255.250:1900\r\n" +
"MAN: \"ssdp:discover\"\r\n"
"ST: urn:schemas-upnp-org:device:Printer:1\r\n"
"MX: 5000\r\n\r\n"

Из того, что я знаю о DNS-запросе, мне нужно отправить что-то вроде:

"_ipp.tcp,all,all"

но я знаю, что должно быть больше.

Любые указатели на документацию и т.д. Будет принята с благодарностью!

Обновление rfc1035 содержит многообещающую информацию о структуре сообщения.

1 ответ1

0

Между rfc1035 и wireshark у меня есть довольно приличная картина того, как выглядит запрос. Для стандартного запроса в основном поля Ответ / Полномочия / Дополнительные будут пустыми. Заголовок содержит общую информацию, включая количество разделов вопросов.

+---------------------+
|        Header       |
+---------------------+
|       Question      | the question for the name server
+---------------------+
|        Answer       | RRs answering the question
+---------------------+
|      Authority      | RRs pointing toward an authority
+---------------------+
|      Additional     | RRs holding additional information
+---------------------+

Wireshark даже дает вам бит и шестнадцатеричное представление DNS-запроса. Это довольно крутой инструмент, о котором я бы хотел знать раньше.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .