<myIFaddr>
我正在尝试将 Java 进程绑定到具有以下IP 地址的特定虚拟接口:
export BIND_ADDR=<myIFaddr> LD_PRELOAD=./bind.so
exec java -jar ppp.jar
该程序ppp.jar
只是向 HTTP 服务器发出请求,服务器回复客户端的 IP 地址,并将该地址打印到 stdout。
结果,java 程序打印“物理接口”的 IP 地址(非虚拟接口,具有不同的 IP 地址)。
有没有办法解决这个问题,应用正确/不同的绑定?
谢谢
答案1
如果您在应用程序中使用 Java 套接字,则可以按如下方式使用 bind 函数:
mysocket=new Socket();
mysocket.bind(new InetSocketAddress(<myIFaddr>, port));
当然,您必须修改代码以在 Java 应用程序中接收输入。