Как определить ма c адрес активного интерфейса с активным VPN? - PullRequest
0 голосов
/ 23 марта 2020

У меня есть приложение "Java клиент на PostgreSQL сервер".

Когда клиент подключается, он выполняет запрос SELECT inet_client_addr(); и получает его IP.

Затем ищет интерфейс с возвращенным IP-адресом и использует

NetworkInterface networkInterface = NetworkInterface.getByInetAddress(inetAddress);
byte[] mac = networkInterface.getHardwareAddress();

для получения адреса MA C сетевой карты.

Проблема возникает, когда клиентский компьютер использует VPN для подключения к локальная сеть, поэтому вместо реального IP-адреса интерфейса inet_client_addr() возвращает свой VPN-специфический c адрес, а NetworkInterface.getByInetAddress() явно не работает.

Есть ли способ, кроме привязки каждого интерфейса к сокету и попытки подключиться к серверу?

...