Отправка DNS-запросов на Java без использования InetAddress

Я пытаюсь отправить DNS-запросы на корневой сервер DNS (например, 192.58.128.30) с помощью JAVA. Но дело в том, что нельзя использовать библиотечные функции, такие как InetAddress.getByName(), что делать?

Я пробовал это до сих пор:

    public class Main{
        public static void main(String[] args) {
            DatagramSocket client = new DatagramSocket();

            String rawMessage = "example message";
            byte[] message = rawMessage.getBytes(); //converting the message into a byte array

            //creating datagram packet
            DatagramPacket packet =
            new DatagramPacket(rawMessage,rawMessage.length,InetAddress.getByName("192.58.128.30"),53);

            //sending packet using datagramSocket
            client.send(packet);

        }
    }

Обновлено: Проблема была решена.

что ты уже испробовал? Пожалуйста, покажите нам код.

amedina 25.02.2019 14:23

@amedina я отредактировал свой пост. Основная проблема в том, что мне не разрешено использовать библиотеку InetAddress в этом коде. Как отправить DatagramPacket без использования InetAddress?

Sihan Tawsik 25.02.2019 14:41

Почему нельзя пользоваться библиотекой?

Ctorres 25.02.2019 14:43

@Ctorres, если честно, я занимаюсь академическим проектом, и в руководстве сказано, что использование библиотеки InetAddress запрещено.

Sihan Tawsik 25.02.2019 14:45

Это многое объясняет! Ха-ха. Извините, я не могу вам помочь, я думал, что это просто проблема с отсутствующей зависимостью. Удачи!

Ctorres 25.02.2019 14:47

Ой. Без проблем. В любом случае спасибо :D @Ctorres

Sihan Tawsik 25.02.2019 14:48

На вашем месте я бы, наверное, проверил, что именно делает эта функция, и попытался бы сделать что-то подобное со своей собственной функцией.

Ctorres 25.02.2019 14:49

Спасибо за предложение: D @Ctorres

Sihan Tawsik 25.02.2019 14:50

Ответьте на свой вопрос, если вы, наконец, сделаете это, это может помочь кому-то! ;)

Ctorres 25.02.2019 14:53
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
9
282
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Самый простой способ — выяснить, что на самом деле делает функция, и реализовать метод вручную для целей обучения.

Повторная реализация того, что было сделано в библиотеке и, вероятно, отлажено и оптимизировано, не обязательно является лучшим решением, за исключением случаев, когда цель состоит в том, чтобы чему-то научиться.

Patrick Mevzek 25.02.2019 15:05

да. Я отредактировал свой ответ исключительно в целях обучения @Patrick Mevzek. Спасибо

Sihan Tawsik 25.02.2019 16:37

Другие вопросы по теме