Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Сети > Как проверить работает ли инет


Автор: Зкув 23.12.2005, 05:24
Как проверить работает ли интернет, соеденение я устанавливаю строю тунель, необходимо проверить а реально не дохлое ли соедениение, чтото вроде пингануть какойнибуть холст в инете, и проверить есть ли ответ, как это можно сделать?

Автор: Aleksandor 23.12.2005, 23:49
Ну можно например попробовать приконнектиться к камому-нибудь надежному хосту microsoft.com, tucows.com и т.п.

Автор: Kill_em_all 25.12.2005, 11:36
Просто к приконнекться к нужному хосту, если не удалось, то выведи
сообщение о том, что возможно подключения к Инету нет.
А про пингануть забудь! Т.к. на серваке может фаервол
резать весь icmp-траффик(ну типа чтоб не заDDos'или)

Автор: Бонифаций 25.12.2005, 11:55
Цитата(Kill_em_all @ 25.12.2005, 11:36)
Просто к приконнекться к нужному хосту, если не удалось, то выведи
сообщение о том, что возможно подключения к Инету нет.
А про пингануть забудь! Т.к. на серваке может фаервол
резать весь icmp-траффик(ну типа чтоб не заDDos'или)

icmp трафик нельзя запрещать - с помощью него передается служебная информация (например результаты сетевых операций , типа- no route to host и т.д.). Если админ запретил icmp трафик - 90 процентов за то, что он не слишком грамотный сисадмин.


Автор: azesmcar 26.12.2005, 09:12
Код

Bool IsNetworkAlive(
  LPDWORD lpdwFlags
);


Цитата
lpdwFlags
[out] The type of network connection that is available. This parameter can be one of the following values:

NETWORK_ALIVE_LAN
The computer has one or more LAN cards that are active.
NETWORK_ALIVE_WAN
The computer has one or more active RAS connections.
NETWORK_ALIVE_AOL
This flag is only valid in Windows Me/98/95.
Indicates a computer is connected to the America Online (AOL) network.


Код

DWORD dwFlags = 0;
BOOL bResult = IsNetworkAlive( &dwFlags );
if ( dwFlags == NETWORK_ALIVE_WAN )
{
   //WAN жив!
}

Автор: Kill_em_all 26.12.2005, 12:02
Бонифаций

Ну и нельзя исключать такого варианта. icmp-протокол очень ненадежный, легче
уже попробовать приконнектится.

Или попробовать вариант, что выше

Автор: adonin 27.12.2005, 12:46
Цитата
icmp трафик нельзя запрещать - с помощью него передается служебная информация (например результаты сетевых операций , типа- no route to host и т.д.). Если админ запретил icmp трафик - 90 процентов за то, что он не слишком грамотный сисадмин.

icmp трафик необходимо запрещать на границе локальной сети. Админу часто нужен icmp, согласен. Но если не запретить icmp входящий трафик на шлюзе, это предоставит возможность хакеру провести первый этап атаки - рекогносцеровку (перечислить хосты сети и т.д.).
Итак, грамотный админ всегда делает следующее:
1. Открывает доступ к машинам по icmp из внутренней сети,
2. фильтрует входящий и исходящий icmp трафик на шлюзе.
Поэтому пинги до определённого хоста могут и не пройти. Эот вариант не очень хорош.
Добавлено @ 12:51
Лучший вариант, ИМХО - коннект на интересующий Вас хост.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)