通过DNS检查互联网连接

时间:2019-08-03 17:47:18

标签: java sockets dns connection

我正在编写Java程序,经常遇到用户下载我的应用程序时防病毒软件阻止Internet连接的问题。

因此,我找到了一种有趣的方法来检查互联网访问是否被防病毒软件阻止:我使用套接字,并尝试通过53端口连接到Google DNS。 例如。 avast不会阻止此连接,我可以理解-用户是否拥有真正的Internet连接。

public static boolean checkRealInternetConnection() {
    return checkInternet("8.8.8.8", 53);
}

private static boolean checkInternet(String host, int port) {
    try {
        Socket socket = new Socket();
        socket.connect(new InetSocketAddress(host, port), 5000);
        return true;
    } catch (Exception e) {
        return false;
    }
}

所以,我的问题是:这是一个好的解决方案吗?

P.S。如果用户具有真正的Internet连接并且没有通过端口80连接到我的网站-我会显示一条消息,指出防病毒软件可以阻止连接。

0 个答案:

没有答案