Использование Java для 'nslookup -type = srv'
-
01-10-2019 - |
Вопрос
Есть ли путь в Java, чтобы сделать поиск Nslookup на SRV Records?
Мне нужно привязать к Active Directory и хотела бы использовать записи SRV, чтобы помочь определить, какая из рекламы в кластере живут.
В командной строке строка поиска NSLookup: 'nslookup -type = srv _ ldap._tcp.actedirectore Доменное имя'
Спасибо.
Решение
Как указал Эриксон, API JNDI имеет Поставщик для DNS с использованием JNDI, который вы можете прочитать по этой ссылке. Для рабочей выборки запроса _ldap._.tcp.mydomain.com
Запись, см Этот код от 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");
Я успешно удалось использовать код, как это в паре проектов для очень прямой интеграции рекламы.
Другие советы
Я никогда не использовал это, но я верю, что Java's "Jndi" API Для служб именования есть поставщик для DNS. Посмотрите доменное имя как DirContext
, А затем проверьте его «SRV» атрибуты.
DirContext ctx = new InitialDirContext();
Attributes attrs = ctx.getAttributes("dns:/y.com", new String[] {"SRV"});
Как будто я говорю, я не экспериментировал с этим, но я надеюсь, что это поможет вам начать.
я использовал http://www.dnsjava.org/ и это сделала работу