Nano Hash - криптовалюты, майнинг, программирование

Как получить IP-адрес из ответного сообщения DNS

Я пытался запрограммировать DNS-запрос-ответ для небольшого проекта. Вот сообщение запроса DNS de42010000010000000000000377777706676f6f676c6503636f6d0000010001, которое я отправляю, чтобы запросить IP-адрес для www.google.com. Сервер, к которому я обращаюсь, это 141.26.64.1. Мне удалось получить ответный пакет. Но я не уверен, как получить IP-адрес из массива байтов resonse. Я нашел в Интернете пример, в котором предполагается, что последние четыре байта ответа содержат разрешенный IP-адрес. Всегда ли это так? Или с какого бита начинаются 4 байта разрешенного IP. На данный момент я не хочу вдаваться в мельчайшие детали дейтаграммы ответа DNS, потому что я пытаюсь сделать свой код максимально простым. Поэтому я просто хочу знать, есть ли определенное битовое место, где находятся эти 4 байта. Спасибо заранее

10.11.2014

  • Сам протокол DNS тщательно задокументирован; вы должны попробовать выбрать формат пакета и начать оттуда 10.11.2014
  • Как у вас обстоят дела с DNS-запросом? 10.11.2014

Ответы:


1

Я не думаю, что есть определенное место, где хранится IP-адрес в ответе DNS. В ответе DNS может быть несколько типов записей, таких как CNAME, A, NX. IP-адрес хранится в записи «A». Также могут быть разделы «Дополнительно» и «Полномочия». Вам необходимо проанализировать всю дейтаграмму в соответствии с протоколом DNS. Посмотрите на 4-й раздел в этом документе.

Если вы хотите, чтобы ваш код был простым или выполнял его эффективно, вам следует рассмотреть возможность использования для этого библиотеки.

10.11.2014
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..