这些Java教程是针对JDK 8编写的。本页面中描述的示例和实践不利用后续版本中引入的改进,并可能使用不再可用的技术。
请参阅Java语言更改,了解Java SE 9和后续版本中更新的语言功能的摘要。
请参阅JDK发行说明,了解所有JDK版本的新功能、增强功能以及已删除或弃用选项的信息。
从网络接口中获取的最有用的信息之一是分配给它的IP地址列表。可以通过使用NetworkInterface实例的两种方法之一来获取此信息。第一种方法getInetAddresses()返回一个InetAddress的Enumeration。另一种方法getInterfaceAddresses()返回一个java.net.InterfaceAddress实例的列表。当您需要有关接口地址的更多信息时,可以使用此方法。例如,当地址是IPv4地址时,您可能需要有关子网掩码和广播地址的其他信息,而对于IPv6地址,您可能需要有关网络前缀长度的信息。
以下示例程序列出了机器上所有网络接口及其地址:
import java.io.*;
import java.net.*;
import java.util.*;
import static java.lang.System.out;
public class ListNets {
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("显示名称:%s\n", netint.getDisplayName());
out.printf("名称:%s\n", netint.getName());
Enumeration<InetAddress> inetAddresses = netint.getInetAddresses();
for (InetAddress inetAddress : Collections.list(inetAddresses)) {
out.printf("InetAddress:%s\n", inetAddress);
}
out.printf("\n");
}
}
以下是示例程序的输出:
显示名称:TCP回环接口 名称:lo InetAddress:/127.0.0.1 显示名称:无线网络连接 名称:eth0 InetAddress:/192.0.2.0