Форум: "Сети";
Текущий архив: 2007.06.24;
Скачать: [xml.tar.bz2];
ВнизОпределение соединения с интернетом Найти похожие ветки
← →
Wahnsinng © (2006-11-29 21:42) [0]Подскажите как можно, если можно, без подвисания программы определить подключение к интернету.
Пробовал пинговать, конектиться к серверу - все работает, но при отключении инттернета программа зависает на некоторое время.
← →
grisme © (2006-11-30 00:25) [1]Попробуй получить адрес какого-нибудь удаленного хоста :] GetHostByName, если nil - скорее всего не подключены.
← →
Сергей М. © (2006-11-30 09:31) [2]
> при отключении инттернета
Что такое "отключение интернета" ?
← →
iXT (2006-11-30 15:56) [3]
> Сергей М. © (30.11.06 09:31) [2]
> Что такое "отключение интернета" ?
Это такой рубильник (красного цвета похожий на стоп-кран в самолете). Оп, и нету интернета.
← →
novill © (2006-11-30 15:59) [4]> [0] Wahnsinng © (29.11.06 21:42)
> отключении инттернета программа зависает на некоторое время.
проверять подключение в отдельном потоке.
← →
iXT (2006-11-30 16:01) [5]
> Wahnsinng © (29.11.06 21:42)
Это не подвисание
← →
EIen © (2006-12-01 10:02) [6]Wahnsinng © (29.11.06 21:42)
Попробуй так:uses ... WinInet;
function TForm1.isconnected : Boolean ;
var
connectiontype: DWORD ;
begin
connectiontype:=INTERNET_CONNECTION_MODEM
+ INTERNET_CONNECTION_LAN
+ INTERNET_CONNECTION_PROXY ;
Result:=InternetGetConnectedState(@connectiontype,0);
end;
Если не затруднит, сообщи результат, у меня вроде бы отрабатывает (но я не в локалке)
← →
iXT (2006-12-01 16:18) [7]ICMP !!!
← →
wahnsinng © (2006-12-03 16:10) [8]EIen. Ваш способ не работает. Я его уже проверял: отключаю dsl модем и он все равно говорит что интернет работает.
← →
iXT (2006-12-04 15:05) [9]
> wahnsinng © (03.12.06 16:10)
Смотри:
проснулся ты со страшного бодуна (ну предположим был в бане 31 декабря).
Кругом все такие же - где никто не знает. Надо определить: "В вытрезвителе вы или нет"
Что будешь делать?
:)
← →
DVM © (2006-12-04 15:23) [10]
> Что будешь делать?
SOS на мобильнике набрать.
← →
wahnsinng © (2006-12-04 17:43) [11]iXT Берешь и спрашиваешь у работников вытрезвителя.
← →
wahnsinng © (2006-12-04 17:44) [12]Смотрите покойника назад понесли!
← →
iXT (2006-12-04 18:04) [13]to wahnsinng © (04.12.06 17:43) [11]
т.е. в данной ситуации ты конкретно знаешь что и у кого ты должен спросить.
Вот когда ты соединение обрываешь, тебе ответ никто и не говорит (никто не отвечает).
А ждать(слушать) ты его как долго будешь?
← →
kroner (2006-12-04 18:09) [14]
> wahnsinng © (03.12.06 16:10) [8]
> EIen. Ваш способ не работает.
Вот еще один -
Для работы Вам необходимо импортировать функцию InetIsOffline из URL.DLL:function InetIsOffline(Flag: Integer): Boolean;
stdcall; external "URL.DLL";
а затем поместить в программу простой вызов функции для проверки статуса соединения:if InetIsOffline(0) then
ShowMessage("This computer is not connected to Internet!")
else
ShowMessage("You are connected to Internet!");
но ещё нужно учитывать, что функция эта выдает false не только, когда комп подключен к Интернету, но и когда ЕЩЕ НЕ БЫЛО ПОПЫТОК подключения (or if no attempt has yet been made to connect to the Internet), как сказано в официальной документации Microsoft по MSDN...
← →
kroner (2006-12-04 18:12) [15]и еще
http://kladovka.net.ru/delphibase/?action=viewfunc&topic=netconnect&id=10116
← →
wahnsinng © (2006-12-04 21:12) [16]iXT Да я уже нашел, что искал спасибо.
← →
iXT (2006-12-05 09:20) [17]
> iXT Да я уже нашел, что искал спасибо.
Ну ты же не сказал об этом. (до этого)
ЗЫ
1. Лучше указывать не имя, а какой-нить IP - допустим есть соединение, но не указан (к примеру специально) сервер DNS
2. Какой-нить фаер может закрывать ICMP и результат у тебя будет неправильный.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2007.06.24;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.04 c