如何从控制台获取有关欧洲域名(如.eu
、、.de
)的域名到期日期的信息.sk
?
对于.com
域名我仅使用whois example.com
,但对于欧洲域名我只获得简要信息,没有日期(例如NOT DISCLOSED!
域名.eu
)
作为替代解决方案,我找到了付费网络服务www.whoisxmlapi.com,但它也是有限的(而且我正在寻找非商业项目的解决方案)。
答案1
大多数 ccTLD(.de 和 .eu 也是如此)在运行 whois 时不会显示到期日期,而 .sk 是显示到期日期的域名之一。在此政策改变之前,唯一的解决方案是使用 api 从该国家注册中心的 Web 界面获取完整的 whois。您可以在此处找到大多数 ccTLD 的可用 whois 信息列表: http://linuxmafia.com/pub/linux/network/domain-check-testdata
如您所见,大多数 ccTLD whois 服务器都不会返回到期日期。
答案2
以下是适用于 .eu 域名的在线 whois 查询(显示到期日期):https://whois.eurid.eu/en/?domain=demosphere.eu
答案3
您应该能够获取几乎任何域名的 whois,实际上有规定确保情况确实如此。但显然情况并非总是如此。要从命令行正确执行 whois,您必须首先:
1)使用 -h 开关通过以下列表中的其中一个服务器连接到 whois:
http://www.nirsoft.net/whois_servers_list.html
注意:每个结尾/顶级域名都有一个“主注册商”
2) 您获得的返回结果将包括一个字段,该字段为您提供该域名实际注册的注册商的 whois 服务器地址。
注意:您只能从域名实际注册的注册商处获取完整的注册信息。
如果你运行:
$ whois google.com
它会尝试在后台为您执行此操作(据我所知),但根据系统和 whois 版本的不同,它通常做得不太好,并且也可能容易受到速率限制。
下面是一个“正确”执行 whois 的快速代码示例。我已经在大量网站上测试过它,它避免了常见的速率限制问题,并且返回的“完整结果”率比我尝试过的任何其他方法都要高得多。
TLD=$(echo $DOMAIN | cut -d. -f2-)
WHOIS=$(grep -w ^$TLD whois_server.txt | cut -d ' ' -f2)
timeout 2 whois -h $WHOIS "domain "$DOMAIN"" | grep " " | grep -v "Status:" | tr ':' '=' | tr -d ' ' | tr '[a-z]' '[A-Z]' > whois.bash
REGIST=$(cat whois.bash | grep WHOISSERVER | cut -d= -f2)
timeout 2 whois -h $REGIST $DOMAIN | grep : | grep -w '^Admin City\|^Admin Country\|^Registrant Organization\|^Registrant Name' | tr [a-z] [A-Z] | sed 's/\ /_/' | sed 's/:/=("/' | tr -d ' ' | sed 's/$/")/' | tr '/' '_' >> whois.bash;