如何在Java中找出.org和.in网站的网域到期日期

Son*_*onu 5 java whois

我正在使用WhoisClientorg.apache.commons.net.whois.WhoisClient)检索我的网站域的到期日期。它适用于具有.com扩展名的域。当我尝试检查我的.org域之一的到期日期时,结果为No match for domain.org。如何确定A .org.in扩展域的有效期?

我正在使用以下代码来获取域的到期日期

String domainName =  mydomain.replaceFirst("^(http[s]?://www\\.|http[s]?://|www\\.)","");
WhoisClient whois = new WhoisClient();
whois.connect(WhoisClient.DEFAULT_HOST);
String whoisData1 = whois.query("=" + domainName);
whois.disconnect();
Run Code Online (Sandbox Code Playgroud)

Pat*_*zek 5

不要打扰Whois协议。

现在(自2019年8月26日起)按照ICANN要求,所有gTLD都需要具有RDAP服务器。RDAP就像whois的后继者一样:交换了相同的内容,但是这次是在HTTPS之上使用某种固定的JSON格式。因此,解析起来很简单。

到期日期将在“事件”数组中,并带有一个名为“到期”的操作。

您可以转到https://data.iana.org/rdap/dns.json找出.ORGRDAP服务器,它位于URL https://rdap.publicinterestregistry.net/rdap/org/

您需要了解有关RDAP的更多信息,以了解如何使用它(查询和答复的结构),您可以在https://about.rdap.org/上找到一些介绍。

简而言之,这模拟了您需要执行的操作:

$ wget -qO - https://rdap.publicinterestregistry.net/rdap/org/domain/slashdot.org | jq '.events[] | select(.eventAction | contains("expiration")) | .eventDate'
"2019-10-04T04:00:00.000Z"
Run Code Online (Sandbox Code Playgroud)

PS1:如果正常情况下从Whois查询中找不到匹配项,则实际上意味着该域不存在;也可能是由于速率限制

PS2:.IN可能还没有RDAP服务器,因为它是ccTLD,因此不受ICANN规则的约束。