Java BrowserMobProxy:如何确定代理服务器的IP?
我在项目中实现了Java BrowserMobProxy:如何确定代理服务器的IP?,java,docker,selenium,proxy,devops,Java,Docker,Selenium,Proxy,Devops,我在项目中实现了BrowserMobProxy。此逻辑将IP地址用于代理连接和测试UI web服务(用于保存请求/响应统计信息的代理)。之前一切正常,但我们重新启动docker,代理的IP地址已更改。现在我需要为代理找到一个新的IP地址 使用IP地址的代码 publicstaticvoidstartproxy服务器(字符串地址){//address=“172.17.0.2” if(browserMobProxy.isStarted()){ browserMobProxy.stop(); } 试一
BrowserMobProxy
。此逻辑将IP地址用于代理连接和测试UI web服务(用于保存请求/响应统计信息的代理)。之前一切正常,但我们重新启动docker,代理的IP地址已更改。现在我需要为代理找到一个新的IP地址
使用IP地址的代码
publicstaticvoidstartproxy服务器(字符串地址){//address=“172.17.0.2”
if(browserMobProxy.isStarted()){
browserMobProxy.stop();
}
试一试{
browserMobProxy.start(9090,Inet4Address.getByName(地址));//{1}
useExclusivePort=browserMobProxy.getPort();
}捕获(例外e){
抛出新的运行时异常(e);
}
}
docker重新启动后,项目开始在{1}
行失败。
我开始在服务器上搜索新IP。不幸的是,我无法使用docker映像中的ifconfig
命令,因为该命令没有安装在docker映像中。因此,我通过以下方式从服务器确定地址:
在我使用IP 172.17.0.2之后,代码运行良好,我希望我解决了这个问题,但结果我与这个代理失去了连接-在UI上,我得到了以下结果:
所以我完全糊涂了:
如何找到可用于代理连接的正确IP?还有其他命令,您可以使用这些命令查找服务器运行的IP。检查您是否有权访问以下任何内容 首先你可以试试
netstat -an
这将为您提供服务器正在侦听的所有IP以及端口,以及服务器上连接的IP以及端口
如果这个不行,试试这个
然后试试看
ip addr
这将为您提供与ifconfig类似的输出
最后你可以试一下
docker inspect -f '{{ .NetworkSettings.IPAddress }}' containerID
这将为您提供docker的网络接口您需要一种通过编程方式传入ipaddress的方法,就像使用env VARABLE或命令行参数一样。@DMart Ok。如何知道我需要通过哪个IP?看起来你已经设置了一个外部代理,是吗?我们需要更多的细节。这看起来不像browsermob代理,它通常只是用来处理请求/响应。@DMart我自己没有设置代理。也许docker图像确实如此,您使用的浏览器是什么?我得到错误:模板解析错误:模板::1:18:执行“”at:map在最后一个命令中没有键“NetworkSettings”的条目。你能向我澄清一下吗?