![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с функцие определения подключения к интернету [D6, Win95/98, WinME, NT4, Win2k, WinXP]
Windows © (2005-08-26 10:19:00)Вообщем, есть функа
function IsConnectedToInternet: Boolean;
var
dwConnectionTypes: DWORD;
begin
dwConnectionTypes :=
INTERNET_CONNECTION_MODEM +
INTERNET_CONNECTION_LAN +
INTERNET_CONNECTION_PROXY;
Result := InternetGetConnectedState(@dwConnectionTypes, 0);
end;
Она определяет наличие подключение к интернету.
Следующие параметры определяют определенное подключение.
INTERNET_CONNECTION_MODEM - Использование модема.
INTERNET_CONNECTION_LAN - Использование Локал сети.
INTERNET_CONNECTION_PROXY - Использование интернета через прокси.
Значит, мне, нужно чтобы функция, определяла, только подключение к интернету, а не подключение по локальной сети.
Но отсюда проблема.
Сейчас есть Спутниковый интернет, интернет через кабель(скоростной), так же через мобильник.
Как из это функции сделать так, чтобы она определяла есть ли подключение к интернету. Но так, чтобы она молчала, если есть связь с локальной сетью. Как это сделать?
DeathLess (2005-09-02 05:23:00) [1]InternetCheckConnection('yandex.ru',1,0)
Функция из WinInet.dll пингует указаный адрес
Критик (2005-09-01 20:56:00) [2]Хорошая идея проверки наличия подключения к Интернет- просто организовать пингование известного сайта, например mail.ru
Digitman (2005-08-26 16:20:00) [3]
> проверяла бы указанный ЮРЛ
проверить URL на доступность нельзя.
можно проверить лишь доступность хоста, имя или адрес которого фигурирует в URL
для этого существует ICMP-протокол
см. ф-ции IcmpCreateFile, IcmpSendEcho
Windows (2005-08-26 16:09:00) [4]Тогда, я вынужден попросить, функцию, которая проверяла бы указанный ЮРЛ, и возвраща ТРУ, если ЮРЛ найден, таким способом можно решить мою проблему, я думаю...
Digitman (2005-08-26 14:04:00) [5]
> Как из это функции сделать так, чтобы она определяла есть
> ли подключение к интернету
никак.
"подключение к интернету" - это нонсенс, чушь.
подключиться можно лишь к другому компьютеру или хабу.
а интеренет - это не хаб и не компьютер, это глобальная сеть локальных сетей.
какждая лок.сеть, в свою очередь, состоит из компьютеров
когда ты "подключаешься к интернет", ты подключаешься всего лишь к одному из компьютеров сети того или иного интернет-провайдера (способы ты перечислил - модемное соединение , высокоскоростные кабельные линии, спутниковый канал и пр.)
интернет-провайдер же волен маршрутизировать твои запросы к различным хостам за пределами его, провайдера, сети, а волен и отвергать любые из этих запросов по тем или иным причинам .. в последнем случае нет повода говорить о "подключении к интернету" (ибо ни один хост за пределами сети провайдера тебе не доступен), хотя InternetGetConnectedState() возвратит для данного соединения TRUE.
Вот и подумай, нужна ли такая ф-ция ..
Antonn (2005-08-26 13:53:00) [6]соединение через удаленное соединение?
Windows (2005-08-26 13:12:00) [7]Не, ну хоть бы кто нить посмотрел!