2010-04-22 1 views
0

Java에서 SRV 레코드에 대한 Nslookup 검색을 수행하는 방법이 있습니까?'nslookup -type = srv'에 Java 사용

Active Directory에 바인딩해야하며 SRV 레코드를 사용하여 클러스터에있는 AD 중 어느 것이 라이브인지 확인하는 데 도움이됩니다.

는 명령 줄에서 nslookup을 검색 문자열은 다음과 같습니다 'nslookup을 타입 = SRV _ ldap._tcp.ActiveDirectory 도메인 이름'

감사합니다.

답변

2

에릭슨 (Erickson)은 지적했듯이 JNDI API는 provider for DNS using JNDI이며이 링크에서 읽을 수 있습니다. 작업 샘플 쿼리의 경우 _ldap._.tcp.mydomain.com 레코드는 this code from Hudson을 참조하십시오.

내가 DNS 제공자를 사용하기 전에, 당신은 (위의 허드슨 코드에서 수정)이 같은 뭔가를로드 할 필요가 있다고 생각 : 거기에서

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"}); 

내가 말했듯이, 나는 이것을 실험하지는 않았지만 시작하는 데 도움이되기를 바랍니다.