Я пытаюсь отправить 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 я отредактировал свой пост. Основная проблема в том, что мне не разрешено использовать библиотеку InetAddress в этом коде. Как отправить DatagramPacket без использования InetAddress?
Почему нельзя пользоваться библиотекой?
@Ctorres, если честно, я занимаюсь академическим проектом, и в руководстве сказано, что использование библиотеки InetAddress запрещено.
Это многое объясняет! Ха-ха. Извините, я не могу вам помочь, я думал, что это просто проблема с отсутствующей зависимостью. Удачи!
Ой. Без проблем. В любом случае спасибо :D @Ctorres
На вашем месте я бы, наверное, проверил, что именно делает эта функция, и попытался бы сделать что-то подобное со своей собственной функцией.
Спасибо за предложение: D @Ctorres
Ответьте на свой вопрос, если вы, наконец, сделаете это, это может помочь кому-то! ;)




Самый простой способ — выяснить, что на самом деле делает функция, и реализовать метод вручную для целей обучения.
Повторная реализация того, что было сделано в библиотеке и, вероятно, отлажено и оптимизировано, не обязательно является лучшим решением, за исключением случаев, когда цель состоит в том, чтобы чему-то научиться.
да. Я отредактировал свой ответ исключительно в целях обучения @Patrick Mevzek. Спасибо
что ты уже испробовал? Пожалуйста, покажите нам код.