如何从IP地址获取主机名?

时间:2014-07-09 10:02:40

标签: go

我试图从IP地址获取主机名,但我总是得到以下错误:

 err couln't get hostnames,err lookup 220.220.103.65.in-addr.arpa.: no such host,ip 65.103.220.220

代码:

var hostname string
hostnames, err := net.LookupAddr(c.ip)
 if err != nil {
  glog.Errorf("err couln't get hostnames,err %v,ip %v", err, c.ip)
  } else {
  hostname = strings.Join(hostnames, " ")
 }

1 个答案:

答案 0 :(得分:7)

这不是错误,而是一个简单的声明,即您正在寻找的IP地址没有PTR记录。并不要求互联网上的每台机器都有PTR记录,也不能保证尝试从IP地址中找到名称会成功。

简而言之,您的代码不会总是返回一个名称,而且您无能为力。

无论您使用机器名称是什么,您都不能依赖它。找一个不同的方式。