Ich möchte auswählen, welcher DNS-Server verwendet werden soll. Ich werde potenziell mehrere Entscheidungen in derselben JVM treffen. Ich möchte IP-Adressen von Hostnamen auflösen.
Dinge, die ich berücksichtigt habe:
Wird
System.setProperty
zum Festlegen von DNS-Einstellungen für Java verwendet, aber mithilfe von Klassenladeprogrammen festgelegt. Es scheint jedoch, dass dieSystem
Klasse nicht anders geladen werden kann.Verwenden des dnsjava-Projekts. Ich sehe diese Funktion jedoch nicht unterstützt. Bestenfalls scheint es, dass ich A-Einträge, CNAME-Einträge, AAAA-Einträge usw. korrekt handhaben müsste, damit dies funktioniert.
Was ist der einfachste Weg, einen anderen DNS-Server auf nicht-globale Weise zu verwenden?
Lösung des Problems
Dies war nicht in den Beispielen für dnsjava, aber ich habe Folgendes herausgefunden:
(im Maßstab)
import org.xbill.DNS._
val resolver = new SimpleResolver("8.8.8.8")
val lookup = new Lookup("example.com")
lookup.setResolver(resolver)
val records = lookup.run()
val address = records.asInstanceOf[ARecord].getAddress()
Keine Kommentare:
Kommentar veröffentlichen