我试图将一个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。