Привязать процесс 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-приложении.