Java 判断 随便两个地区服务器,判断是否联通

现在我想要实现 ,随便两个地区的服务器,想知道如果判断这两个服务器是不是可以联通的,比如我有一个页面,随便输入某两个地区的IP,点击链接,就可以返回是不是可以联通,这个可以直接使用ping ,但是ping 的关键是必须是本服务器ping 其他服务器,但是我想要的是随便的两个服务器IP。

总之就是如何知道 随便的两个服务器是不是可以联通,使用Java实现

搭建web服务器,请求其中的网页,如果能返回就是通的。

可以使用 Java 中的 InetAddress 类来判断两个服务器是否联通。该类提供了一个 isReachable 方法,可以检查一个主机是否可达。

import java.io.IOException;
import java.net.InetAddress;

public class ServerConnectivityCheck {
    public static boolean isServerReachable(String ip) {
        try {
            InetAddress addr = InetAddress.getByName(ip);
            return addr.isReachable(3000); // 3秒超时
        } catch (IOException e) {
            e.printStackTrace();
            return false;
        }
    }

    public static void main(String[] args) {
        String ip1 = "10.0.0.1";
        String ip2 = "192.168.0.1";
        boolean connected = isServerReachable(ip1) && isServerReachable(ip2);
        System.out.println(connected);
    }
}

该回答引用GPTᴼᴾᴱᴺᴬᴵ
您可以使用Java中的Socket类实现对两个服务器是否联通的判断。具体步骤如下:

1.获取用户输入的两个服务器IP地址。
2.使用Socket类分别创建两个Socket对象,并分别将它们连接到对应的服务器IP地址和端口。
3.如果连接成功,说明这两个服务器可以联通,否则说明它们不能联通。
4.最后关闭这两个Socket对象。

以下是一个简单的Java代码示例:

import java.io.IOException;
import java.net.Socket;

public class ServerConnectionChecker {
    public static void main(String[] args) {
        String server1 = "192.168.0.1";
        int port1 = 80;
        String server2 = "10.0.0.1";
        int port2 = 80;

        boolean isServer1Connected = checkServerConnection(server1, port1);
        boolean isServer2Connected = checkServerConnection(server2, port2);

        System.out.println("Server1 is " + (isServer1Connected ? "connected" : "disconnected"));
        System.out.println("Server2 is " + (isServer2Connected ? "connected" : "disconnected"));
    }

    private static boolean checkServerConnection(String server, int port) {
        try (Socket socket = new Socket(server, port)) {
            return true;
        } catch (IOException e) {
            return false;
        }
    }
}


在这个示例中,我们使用checkServerConnection方法检查两个服务器是否可以联通,其中Socket的连接方法将自动处理网络层面上的连接问题。如果连接失败,Socket将会抛出IOException异常,此时checkServerConnection方法返回false,否则返回true。最后我们通过简单的println语句输出两个服务器是否可以联通的结果。