2014-07-07 4 views
2

"example.com"과 같은 호스트 이름이 주어지면 특정 nameserver를 사용하여 IP 주소를 가져 오려고합니다.특정 이름 서버로 호스트 이름을 확인하기위한 스칼라 또는 자바 라이브러리

java.net.InetAddress의 내가 필요한 것 같습니다

private static InetAddress getByName(String host, InetAddress reqAddr) 

이 있지만 큰 실수는 방법은 개인이다.

https://github.com/gilt/scala-srv-dns 다시, 개인 방법을

def lookup(serviceName: ServiceName, 
     transportProtocol: TransportProtocol, 
     dnsSearchPaths: List[String]): Seq[ServiceRecord] 

을 가지고 그러나.

그래서 어떤 lib를 사용할 수 있습니까? 그리고 위에 열거 된 libs가 비공개로이 방법을 사용하는 이유는 무엇입니까?

+2

을위한 솔루션은 개인인가를했다? http://docs.oracle.com/javase/7/docs/api/java/net/InetAddress.html#getByName%28java.lang.String%29 – Ved

+3

네임 서비스 주소를 허용하는 변형은 private이며 yes입니다. [[ 여기에 소스] (http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/net/InetAddress.java#InetAddress.getByName%28java.lang.String % 2Cjava.net.InetAddress % 29) – DNA

답변

2

dnsjava 나 (http://www.dnsjava.org/)

def lookup(host: String, nameServer: String): Array[String] = { 
    val l = new Lookup(host) 
    l.setResolver(new SimpleResolver(nameServer)) 
    l.run() 
    if (l.getResult() == Lookup.SUCCESSFUL) 
    l.getAnswers().map(_.rdataToString()) 
    else 
    Array.empty[String] 
} 
+0

요청 캐싱을 비활성화하려면 l.setCache (null) – ov7a