文档

Java™ 教程
隐藏目录
网络接口地址列表
路径: 自定义网络
教程: 程序化访问网络参数

列出网络接口地址

从网络接口中获取的最有用的信息之一是分配给它的IP地址列表。可以通过使用NetworkInterface实例的两种方法之一来获取此信息。第一种方法getInetAddresses()返回一个InetAddressEnumeration。另一种方法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

上一页:检索网络接口
下一页:网络接口参数