我想知道识别互联网是否正常工作的最佳方法。我在考虑 Ping,但可能目标已关闭,这将使我的应用程序认为互联网已关闭。
因此,如果有人有任何想法,那将是很棒的分享。
与其选择要 ping 的主机或 DNS,不如尝试 ping 您打算与之交互的 Web 资源。或者,实际上尝试与该端点交互并为无法访问该主机的情况做好充分准备,而不是 ping。
IE 一个 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
}