2010-04-22 3 views
0

Есть ли способ в Java выполнить поиск Nslookup в SRV-записях?Использование Java для 'nslookup -type = srv'

Мне нужно привязать к Active Directory и использовать записи SRV, чтобы определить, какие из AD в кластере живут.

В командной строке Nslookup строка поиска: 'Nslookup -type = SRV _ ldap._tcp.ActiveDirectory доменное имя'

Спасибо.

ответ

2

Как отметил Эриксон, 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.

0

Я никогда не использовал его, но я считаю, что Java "JNDI" API для служб именования имеет поставщика DNS. Найдите доменное имя как DirContext, а затем изучите его атрибуты «SRV».

DirContext ctx = new InitialDirContext(); 
Attributes attrs = ctx.getAttributes("dns:/y.com", new String[] {"SRV"}); 

Как я уже сказал, я не экспериментировал с этим, но я надеюсь, что это поможет вам начать работу.

 Смежные вопросы

  • Нет связанных вопросов^_^