将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套接字,则可以使用bind函数,如下所示:

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

自然,您必须修改代码以在Java应用程序中input。