如何轻松检查远程服务器上连接的VPN?

时间:2017-05-23 14:49:18

标签: java vpn

所以我有一个带有vpn的测试服务器,我已经创建了一个脚本,可以使用cisco vpncli连接到特定的vpn,当我手动运行它或将我的部署作为其一部分时,它的效果很好。

如何以编程方式判断我的远程服务器上是否连接了VPN?我假设我可以ping一个特定的地址,这个地址只有在通过远程服务器连接vpn时才可以访问,我将如何轻松地执行此操作?

作为我的测试自动化的一部分,我需要在继续运行之前确认VPN已连接,如果不是,那么我想打开它。

我不是在寻找复制和粘贴工作,我正在寻找有关如何完成任务的指导。

这是我应采取的方法还是更简单的方法?

1 个答案:

答案 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