2013-04-10 7 views
1

Я хочу знать, как лучше всего определить, работает ли Интернет или нет. Я думал о Ping, но, возможно, цель не работает, это заставит мое приложение думать, что интернет не работает.Лучший способ определить, работает ли Интернет

Так что если кто-нибудь понял, было бы здорово поделиться.

+4

Пинг очень надежного хоста (то есть: Google) может быть хорошим способом. – christopher

+0

Если бы я что-то пинговал, я бы набрал DNS-серверы Google по IP: 8.8.8.8 или 8.8.4.4 –

+0

@ChrisCooney Не обязательно - многие офисные среды блокируют исходящие ICMP. – Dai

ответ

2

Пинг работает 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 
} 
+3

Ничего не бывает. – CodeCaster

+0

@ CodeCaster: возможно: D – KF2

4

Вместо выбора хоста или DNS свистеть, пробуйте пинговать веб-ресурс, который вы собираетесь взаимодействовать. Или, а не пинг, на самом деле пытайтесь взаимодействовать с этой конечной точкой и тщательно подготовиться к ситуации, когда этот хост не может быть достигнут.

I.E. клиент Twitter может попытаться подключиться к twitter.com, и если он не сможет (независимо от того, у них нет подключения к Интернету или заблокирован сайт twitter.com), программа может сообщить, что «Twitter в настоящее время недоступен».

Смежные вопросы