【问题标题】:Scala or java lib to resolve host name with specific nameserver使用特定名称服务器解析主机名的 Scala 或 java lib
【发布时间】:2014-07-07 12:45:36
【问题描述】:

给定一个像“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]

但是,又是私有方法。

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

【问题讨论】:

标签: java scala dns nslookup


【解决方案1】:

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]
}

【讨论】:

  • 如果你想禁用请求缓存,只需执行 l.setCache(null)
猜你喜欢
  • 2013-08-10
  • 2012-07-18
  • 2019-12-18
  • 2022-01-17
  • 2021-08-18
  • 2014-09-18
  • 1970-01-01
  • 2013-06-30
  • 2013-12-13
相关资源
最近更新 更多