Java 如何获取一个域名的备案信息
在Java中获取一个域名的备案信息,可以通过查询Whois数据库来实现。Whois是一种用于查询域名相关信息的网络协议,通过发送查询请求到Whois服务器,可以获取到域名的注册信息、所有者信息、注册商等详细信息。
使用 Apache Commons Net 获取 Whois 信息
Apache Commons Net 是一个Java网络库,提供了一些常见的网络操作功能,包括Whois查询。使用Apache Commons Net可以很方便地查询一个域名的Whois信息。
首先,我们需要添加Apache Commons Net的依赖到项目的pom.xml文件中:
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.7</version>
</dependency>
接下来,我们可以编写一个Java方法,实现查询域名的Whois信息:
import org.apache.commons.net.whois.WhoisClient;
public class WhoisExample {
public static void main(String[] args) {
String domain = "example.com";
String whoisServer = findWhoisServer(domain);
String whoisInfo = queryWhoisServer(domain, whoisServer);
System.out.println(whoisInfo);
}
private static String findWhoisServer(String domain) {
String whoisServer = null;
// 查询域名的顶级域名
String tld = domain.substring(domain.lastIndexOf('.') + 1);
// 根据顶级域名查找对应的Whois服务器
if ("com".equals(tld)) {
whoisServer = "whois.verisign-grs.com";
} else if ("net".equals(tld)) {
whoisServer = "whois.verisign-grs.com";
} else if ("org".equals(tld)) {
whoisServer = "whois.pir.org";
}
// TODO: 添加更多顶级域名的Whois服务器
return whoisServer;
}
private static String queryWhoisServer(String domain, String whoisServer) {
StringBuilder result = new StringBuilder();
// 创建Whois客户端
WhoisClient whoisClient = new WhoisClient();
try {
// 连接Whois服务器
whoisClient.connect(whoisServer);
// 查询域名的Whois信息
String whoisInfo = whoisClient.query(domain);
result.append(whoisInfo);
// 关闭连接
whoisClient.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
return result.toString();
}
}
在上面的示例代码中,我们首先定义了一个域名 example.com。然后,通过 findWhoisServer 方法根据顶级域名 com 查找对应的Whois服务器。接下来,我们使用 queryWhoisServer 方法连接Whois服务器,并查询域名的Whois信息。最后,我们将查询结果打印出来。
请注意,以上示例代码只提供了部分常用顶级域名的Whois服务器,如果要查询其他顶级域名的Whois信息,需要根据实际情况添加更多的Whois服务器。
代码示例
代码示例请参考以下链接:
[
运行结果
执行上述示例代码,可以得到类似以下的Whois信息:
Domain Name: EXAMPLE.COM
Registry Domain ID: 2336799_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.verisign-grs.com
Registrar URL:
Updated Date: 2021-01-05T09:59:22Z
Creation Date: 1995-08-14T04:00:00Z
Registry Expiry Date: 2022-08-13T04:00:00Z
Registrar: VeriSign Global Registry Services
Registrar IANA ID: 299
Registrar Abuse Contact Email: abuse@verisign-grs.com
Registrar Abuse Contact Phone: +1.8003337680
Domain Status: clientDeleteProhibited
Domain Status: clientTransferProhibited
Domain Status: clientUpdateProhibited
Name Server: A.EXAMPLE.COM
Name Server: B.EXAMPLE.COM
DNSSEC: unsigned
URL of the ICANN Whois Inaccuracy Complaint Form:
>>> Last update of whois database: 2021-10-01
















