Как отметил Эриксон, API JNDI имеет provider for DNS using JNDI, о котором вы можете прочитать по этой ссылке. Для рабочего примера запроса запись _ldap._.tcp.mydomain.com
, см. this code from Hudson.
Я считаю, что перед использованием провайдера DNS, вам необходимо загрузить его с чем-то вроде этого (с изменениями от кода Hudson выше):
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.dns.DnsContextFactory");
env.put("java.naming.provider.url", "dns:");
DirContext ctx = new InitialDirContext(env);
оттуда, можно получить запись SRV через что-то вроде :
Attributes attributes = ctx.getAttributes("_ldap._tcp.mydomain.com", new String[]{"SRV"});
Attribute a = attributes.get("SRV");
Я успешно использовал код, подобный этому, в нескольких проектах для очень простой интеграции AD.