2013-04-10 87 views
1

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

所以,如果任何人有任何想法,这将是很高兴分享。

+4

寻找一位非常可靠的主持人(即:Google)可能是一个很好的选择。 – christopher 2013-04-10 18:32:28

+0

如果我想要ping一些东西,我可以ping通Google的DNS服务器IP:8.8.8.8或8.8.4.4 – 2013-04-10 18:33:29

+0

@ChrisCooney不一定 - 许多办公环境阻止传出的ICMP。 – Dai 2013-04-10 18:33:43

回答

2

平工作DNS就像4.2.2.44.2.2.34.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 
} 
+3

没有东西总是起来。 – CodeCaster 2013-04-10 18:35:51

+0

@ CodeCaster:也许:D – KF2 2013-04-10 18:37:04

4

而不是选择一个主机或DNS ping通,尝试ping你打算与之交互的网络资源。或者,而不是ping,实际上尝试与该端点进行交互,并为无法访问该主机的情况做好充分的准备。

I.E.一个Twitter客户端可能会尝试连接到twitter.com,如果它不能(无论他们没有互联网连接或twitter.com被阻止),该程序可能会报告“Twitter目前无法访问”。

相关问题