大家好,我想获取 eth0 接口(interface)的 ipv6 地址,
例如我的 eth0 接口(interface):
eth0:链接 encap:以太网 HWaddr 11:11:11:11:11:11
inet 地址:11.11.11.11 广播:11.11.11.255 掩码:255.255.255.0
inet6 地址:1111:1111:1111:1111:1111:1111/64 范围:链接
如何在java中获取inet6地址?
我无法正确使用 InetAdress 类。它总是返回一个 ipv4 地址。
最佳答案
感谢您的建议。我通过以下代码获得了有关接口(interface)的所有信息。
此外,InetAddress 类在 Linux 中无法正常工作。 (我尝试在Linux中获取硬件地址)但是代码在Windows和Linux上可以正常工作。
import java.io.*;
import java.net.*;
import java.util.*;
import static java.lang.System.out;
public class GetInfo {
public static void main(String args[]) throws SocketException {
Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces();
for (NetworkInterface netint : Collections.list(nets))
displayInterfaceInformation(netint);
}
static void displayInterfaceInformation(NetworkInterface netint) throws SocketException {
out.printf("Display name: %s\n", netint.getDisplayName());
out.printf("Name: %s\n", netint.getName());
Enumeration<InetAddress> inetAddresses = netint.getInetAddresses();
for (InetAddress inetAddress : Collections.list(inetAddresses)) {
out.printf("InetAddress: %s\n", inetAddress);
}
out.printf("Up? %s\n", netint.isUp());
out.printf("Loopback? %s\n", netint.isLoopback());
out.printf("PointToPoint? %s\n", netint.isPointToPoint());
out.printf("Supports multicast? %s\n", netint.supportsMulticast());
out.printf("Virtual? %s\n", netint.isVirtual());
out.printf("Hardware address: %s\n",
Arrays.toString(netint.getHardwareAddress()));
out.printf("MTU: %s\n", netint.getMTU());
out.printf("\n");
}
}
问候。
关于java - java中如何获取本地ipv6地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25134753/