2013-01-24 3 views
0

에 라이브러리가있어 DNS 서버 정보를 정확하게 가져 오시겠습니까?DNS 레코드 정보 가져 오기 java

내가 IP 에서DNS 매핑뿐만 아니라 다른 기록에서뿐만 아니라 관심 : A, AAAA, MX, NS, SOA, RRSIG 전자 T.C.. 더 나은

Hashtable<String, Object> env = new Hashtable<String, Object>(); 
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.dns.DnsContextFactory"); 
env.put(Context.PROVIDER_URL, "dns:"); 

DirContext ctx = new InitialDirContext(env); 
Attributes atts = ctx.getAttributes("stackexchange.com", new String[] {"MX"}); 
NamingEnumeration<? extends Attribute> e = atts.getAll(); 
while(e.hasMore()) { 
    System.out.println(e.next().get()); 
} 

답변

3

, 당신은 JNDI에 대한 DNS 제공 업체, 예를 들어 사용할 수 있습니다

<dependency> 
    <groupId>dnsjava</groupId> 
    <artifactId>dnsjava</artifactId> 
</dependency> 

및 예처럼 보인다 이 :

Record[] rs = new Lookup("maildomain.com", Type.MX).run(); 
+0

이 솔루션에 ipv6 관련 문제가 있습니다. – builtofire

+0

@builtofire : 설명해주세요. – jarnbjo

+0

@builtofire : 여기에서 쿼리되는 MX 레코드에는 우선 순위와 호스트 이름이 포함되며 IPv4 또는 IPv6 주소와는 아무런 관련이 없습니다. 어떤 종류의 IPv6 문제에 대해 이야기하고 있습니까? – jarnbjo

0

가 dnsjava lib 디렉토리 사용하기 : 당신의 코드가 오라클 VM에서 실행되는 경우

+0

android에서 사용하는 방법 –