这些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