Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать есть ли сейчас соединение с интернетом?


Игорь Н. ©   (2004-05-24 19:59:00) 

Понимаю, что вопрос затертый, однако конкретного ответа на него найти не смог. Подскажите, пожалуйста, как проверить соеденен ли компьютер сейчас с интернетом?


Игорь Н.   (2004-05-26 18:37:00) [1]


> Rouse_
Это я уже читал. Там правда написана, только вот перед тем, как проверить соединение во всех способах, описаных в разделе "А теперь правда", программа просит соединится. А это как-то неразумно - соединятся, чтобы проверить есть ли соединение :) А мне надо, чтобы пользователь не знал, что программа проверяет соединение.


Rouse_   (2004-05-25 00:27:00) [2]

> Узнать IP, и если это не 127.0.0.1 значит не соеденен
А что, тоже юмор :)
Видимо Loopback интерфейс от сетевой карты отличить уже можем :)


Rouse_   (2004-05-25 00:22:00) [3]

Хм... вечные споры о вечном :)
А если умные мысли почитать?
http://www.delphimaster.ru/articles/connect-inet.html

> Эта функция возвращает TRUE если соединение с интернетов
> отсутствует
, или FALSE если соединение установлено.

Важное дополнение забыл - если соединение с интернетом отсутствует или не было еще установлено...


Sur   (2004-05-24 21:33:00) [4]

соеденен


Sur   (2004-05-24 21:30:00) [5]


> как проверить соеденен ли компьютер сейчас с интернетом?

Узнать IP, и если это не 127.0.0.1 значит не соеденен


Игорь Н.   (2004-05-24 20:58:00) [6]

Вообще-то этот способ весьма сомнителен. Если в InternetExplorer поставить галочку "Работать автономно", то всегда будет вылетать сообщение "This computer is not connected to Internet!" и наоборот - если убрать галочку то "You are connected to Internet!" А ведь при загрузке компьютера, гаолчка не устанавливается т.е. такой способ покажет, что соединение установлено :( и в моей программе возникнет ошибка.


MasterA   (2004-05-24 20:38:00) [7]

Для работы Вам необходимо импортировать функцию 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!');

Эта функция возвращает TRUE если соединение с интернетов отсутствует, или FALSE если соединение установлено.

Замечание:
параметр Flag игнорируется, соответственно используем ноль.
Эта DLL обычно проинсталлирована на большинстве компьютеров. Она также существует в Win98 либо поставляется с Internet Explorer 4 или выше, Office 97 и т.д..
Более подробно можно прочитать в MSDN. Оригинал: http://msdn.microsoft.com/library/psdk/shellcc/shell/Functions/InetIsOffline.htm


Наверх

Титульная страница Поиск, карта сайта Написать письмо