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

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

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

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

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

Спасибо

1 ответ

Решение

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

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

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

Другие вопросы по тегам