java 通过域名 获取所有ipv4和ipv6
时间: 2023-08-09 18:01:42 浏览: 311
在Java中,我们可以使用InetAddress类来通过域名获取IP地址。InetAddress类提供了getByName()方法,可以接受一个String类型的域名参数,并返回一个InetAddress对象,该对象包含了与该域名相关的IP地址信息。
要获取所有的IPv4和IPv6地址,我们可以使用getAddress()和getAllByName()方法。getAddress()用于获取当前主机的IP地址,而getAllByName()则返回与指定域名相关的所有IP地址。
以下是一个展示如何通过域名获取所有IPv4和IPv6的示例代码:
```java
import java.net.InetAddress;
import java.net.UnknownHostException;
public class IPAddressExample {
public static void main(String[] args) {
String domainName = "www.example.com";
try {
InetAddress[] addresses = InetAddress.getAllByName(domainName);
for (InetAddress address : addresses) {
if (address.getAddress().length == 4) {
// IPv4 address
System.out.println("IPv4: " + address.getHostAddress());
} else if (address.getAddress().length == 16) {
// IPv6 address
System.out.println("IPv6: " + address.getHostAddress());
}
}
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
```
在上述示例中,我们首先指定了要查询的域名,然后调用InetAddress类的getAllByName()方法来获取与该域名相关的所有IP地址。接着我们通过检查返回的IP地址的长度来判断是IPv4还是IPv6地址,并将其打印输出。
需要注意的是,由于某些域名可能有多个IP地址,因此getAllByName()方法将返回一个InetAddress数组。我们需要遍历该数组来获取所有的IP地址。
希望以上信息对你有帮助!
阅读全文