getaddrinfo(whois.verisign-grs.com):名称或服务未知

getaddrinfo(whois.verisign-grs.com): Name or service not known

我尝试 WHOIS 域名 sans.org,但出现以下错误:

getaddrinfo(whois.pir.org): Name or service not known.

然后我尝试 WHOIS tiffany.com 并得到类似的错误:

getaddrinfo(whois.verisign-grs.com): Name or service not known.

getaddrinfo是什么意思,whois.pir.orgwhois.virusigngrs.com是什么?

linux 和 WHOIS 查询的新手。谢谢!

getaddrinfo是执行"domain name resolution"的系统调用。也就是说,它将域名(例如 "whois.pir.org")转换为 IP 地址(例如 199.15.84.131)。尝试 man getaddrinfo 了解更多详情,但请注意,这可能会让您偏离轨道。

whois 命令调用 getaddrinfo 尝试查找合适的网络信息中心 (NIC) 来为您进行 whois 搜索。 NIC 的示例是 Public 兴趣注册 (pir) 或威瑞信全球注册服务 (verisign-grs)。该错误(非常糟糕)告诉您它无法解析这些服务器的域名,因此无法进行 whois 查找。当您的域名服务器 (DNS) 配置不当时,域名解析通常会失败。

尝试nslookup whois.pir.org直接解决。您可能会发现有一个类似的错误,但可能有更多的细节。无论如何,您的 DNS 配置有误,您需要查看网络配置,尤其是 DNS 配置。

作为解决方法,您始终可以只使用提供与 whois 类似功能的众多 Web 服务之一,但要通过您的 Web 浏览器。例如。 http://whois.pir.org

我在 Docker 环境中遇到了类似的问题,只安装了 whois,但我已经找到了另一个解决方案。安装 netbase 后,whois 正常工作。

    $ docker run -it --rm ubuntu:18.04 bash
    root@docker# apt update && apt -y install whois
    root@docker# whois google.com
    > getaddrinfo(whois.verisign-grs.com): Servname not supported for ai_socktype
    root@docker# apt -y install netbase
    root@docker# whois google.com
    > Domain Name: GOOGLE.COM
    > Registry Domain ID: 2138514_DOMAIN_COM-VRSN
    > ...

Docker 无关,但它帮助我解决了这个问题。