最好的方法来检测互联网是否正在工作

本文关键字:是否 工作 互联网 检测 方法 | 更新日期: 2023-09-27 18:08:25

我想知道识别互联网是否正常工作的最佳方法。我在想Ping,但可能目标已经关闭,这会使我的应用程序认为互联网已经关闭。

所以如果有人有任何想法,将是伟大的分享。

最好的方法来检测互联网是否正在工作

与其选择一个主机或DNS来ping,不如尝试ping你打算与之交互的web资源。或者,与其ping,不如尝试与该端点交互,并为无法到达该主机的情况做好充分准备。

即一个twitter客户端可能会尝试连接到twitter.com,如果它不能(无论他们没有互联网连接或twitter.com被封锁),程序可能会报告"twitter目前无法访问"。

Ping一个正常工作的DNS,如4.2.2.4, 4.2.2.3, 4.2.2.2, 8.8.8.8, 8.8.4.4

Ping myPing = new Ping();
String host = "4.2.2.4;
byte[] buffer = new byte[32];
int timeout = 1000;
PingOptions pingOptions = new PingOptions();
PingReply reply = myPing.Send(host, timeout, buffer, pingOptions);
if (reply.Status == IPStatus.Success) {
  // presumably online
}