Spec-Zone .ru
спецификации, руководства, описания, API
След: Пользовательские Сети
Урок: Программируемый Доступ к Сетевым Параметрам
Перечисление Адресов Сетевого интерфейса
Домашняя страница > Пользовательские Сети > Программируемый Доступ к Сетевым Параметрам

Перечисление Адресов Сетевого интерфейса

Одно из самых полезных сведений, которые можно получить от сетевого интерфейса, является списком IP-адресов, которые присваиваются этому. Можно получить эту информацию из a NetworkInterface экземпляр при использовании одного из двух методов. Первый метод, getInetAddresses(), возвраты Enumeration из InetAddress. Другой метод, getInterfaceAddresses(), возвращает список java.net.InterfaceAddress экземпляры. Этот метод используется, когда Вы нуждаетесь в большей информации об адресе интерфейса вне его IP-адреса. Например, Вам, возможно, понадобилась бы дополнительная информация о маске подсети и широковещательном адресе, когда адрес является адресом 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("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("\n");
     }
}  

Следующее является демонстрационным выводом из примера программы:

Display name: TCP Loopback interface
Name: lo
InetAddress: /127.0.0.1

Display name: Wireless Network Connection
Name: eth0
InetAddress: /192.0.2.0

Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Получение Сетевых интерфейсов
Следующая страница: Параметры Сетевого интерфейса