所以我有一个带有vpn的测试服务器,我已经创建了一个脚本,可以使用cisco vpncli连接到特定的vpn,当我手动运行它或将我的部署作为其一部分时,它的效果很好。
如何以编程方式判断我的远程服务器上是否连接了VPN?我假设我可以ping一个特定的地址,这个地址只有在通过远程服务器连接vpn时才可以访问,我将如何轻松地执行此操作?
作为我的测试自动化的一部分,我需要在继续运行之前确认VPN已连接,如果不是,那么我想打开它。
我不是在寻找复制和粘贴工作,我正在寻找有关如何完成任务的指导。
这是我应采取的方法还是更简单的方法?
答案 0 :(得分:1)
你应该ping没有vpn连接时不可用的vpn服务器。
您可以将VPN服务器ping为公共远程服务器。
只需ping 80端口:
boolean reachable = InetAddress.getByName(hostname).isReachable();
或使用:
public static boolean pingHost(String host, int port, int timeout) {
try (Socket socket = new Socket()) {
socket.connect(new InetSocketAddress(host, port), timeout);
return true;
} catch (IOException e) {
return false; // Either timeout or unreachable or failed DNS lookup.
}
}
请参阅此处Preferred Java way to ping an HTTP URL for availability