Как зарегистрировать доменное имя на моем локальном DNS программно в Java? - PullRequest
0 голосов
/ 29 ноября 2011

Я пишу инструмент для подготовки виртуальных машин. Одна задача - когда машина запущена и работает, ей нужно получить имя хоста из DNS, для чего мне нужно зарегистрировать там свой ip. Есть ли способ, как это сделать программно в Java?

Ответы [ 2 ]

0 голосов
/ 29 ноября 2011

Я не уверен на 100%, если это то, что вы спрашиваете, но я думаю, что вы, возможно, спрашиваете, как получить имя хоста локального компьютера, когда он работает?то есть обратный поиск DNS?

Если это так, то вы можете сделать это следующим образом:

InetAddress.getLocalHost().getHostName()

Это вернет имя хоста текущего компьютера, сопоставленного с IP-адресом локальной сети, в виде строки.

0 голосов
/ 29 ноября 2011

Два предложения.

  1. Если машинам не нужны специальные имена, а можно просто назначить произвольную аренду DHCP, тогда вы можете присвоить каждому возможному адресу фиксированное имя на основепо адресу.Вероятно, вы видели, что многие интернет-провайдеры делают это для своих клиентов DSL, поэтому, например, 82-69-170-87.dsl.in-addr.zen.co.uk - это IP-адрес 82.69.170.87. Этот параметр очень безболезненный, так как не требуетчто-нибудь особенное для вновь подготовленной виртуальной машины или системы инициализации.

  2. Используйте TSIG для создания динамического DNS.Убедитесь, что ваш DNS-сервер поддерживает динамический DNS на основе TSIG, и прочтите его руководство о том, как авторизовать компьютеры для выполнения обновлений.Во многих системах Unix вы можете использовать инструмент bind nsupdate для выполнения динамических обновлений с TSIG, но если вы хотите сделать это на чистой Java, вам нужно посмотреть на http://www.dnsjava.org/, который должен иметь все, что вам нужнонеобходимость.Это потребует значительно больше работы, но позволит вам организовать именование каждой виртуальной машины и назначить ей конкретный адрес в зависимости от правил, которые вы хотите внедрить.

...