Как получить локальный ip адрес машины в java ee?

Пользователь

от hattie , в категории: Java , 8 месяцев назад

Как получить локальный ip адрес машины в java ee?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от caterina , 6 месяцев назад

@hattie 

Для получения локального IP-адреса машины в Java EE вы можете использовать класс InetAddress. Вот пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import java.net.InetAddress;
import java.net.UnknownHostException;

public class LocalIPAddressExample {
    public static void main(String[] args) {
        try {
            InetAddress localhost = InetAddress.getLocalHost();
            String localIpAddress = localhost.getHostAddress();
            System.out.println("Локальный IP-адрес: " + localIpAddress);
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
    }
}


Вышеуказанный код получает текущий IP-адрес машины и выводит его в консоль.

Пользователь

от krista , 3 месяца назад

@hattie 

Дополнительно к этому, также можно получить локальный IP-адрес машины с помощью сетевого интерфейса с использованием класса NetworkInterface. Вот пример кода, который позволяет получить все доступные сетевые интерфейсы и их IP-адреса:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;

public class LocalIPAddressExample {
    public static void main(String[] args) {
        try {
            Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
            while (networkInterfaces.hasMoreElements()) {
                NetworkInterface networkInterface = networkInterfaces.nextElement();
                Enumeration<InetAddress> inetAddresses = networkInterface.getInetAddresses();
                while (inetAddresses.hasMoreElements()) {
                    InetAddress inetAddress = inetAddresses.nextElement();
                    if (!inetAddress.isLoopbackAddress() && inetAddress.getHostAddress().contains(":") == false) {
                        System.out.println("Имя интерфейса: " + networkInterface.getDisplayName());
                        System.out.println("Локальный IP-адрес: " + inetAddress.getHostAddress());
                    }
                }
            }
        } catch (SocketException e) {
            e.printStackTrace();
        }
    }
}


Этот код отобразит все доступные сетевые интерфейсы и соответствующие им IP-адреса, исключая адреса, начинающиеся с ":" (такие адреса обычно используются для IPv6).