3

给定一个像“example.com”这样的主机名,我想使用特定的名称服务器获取它的 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]

但是,再次,私有方法。

那么,我可以使用什么库?你知道为什么上面列出的库有这些方法是私有的吗?

4

1 回答 1

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]
}
于 2014-07-07T14:30:57.023 回答