Назад | Перейти на главную страницу

Привязать процесс Java к виртуальному интерфейсу

Я пытаюсь привязать Java-процесс к конкретному виртуальному интерфейсу с IP-адресом <myIFaddr> следующим образом:

export BIND_ADDR=<myIFaddr> LD_PRELOAD=./bind.so
exec java -jar ppp.jar

Программа ppp.jar просто делает запрос на HTTP-сервере, который в ответ отправляет обратно IP-адрес клиента, выводя этот адрес на стандартный вывод.
В результате программа на Java выводит IP-адрес «физического интерфейса» (не виртуального, имеющего другой IP-адрес).

Есть ли способ решить эту проблему, применив правильную / другую привязку?

Спасибо

Если вы используете сокет Java в своем приложении, вы можете использовать функцию привязки следующим образом:

mysocket=new Socket();
mysocket.bind(new InetSocketAddress(<myIFaddr>, port));

естественно, вам нужно изменить код, чтобы он вводился в ваше приложение Java.