|
1 / 1 / 0
Регистрация: 22.04.2011
Сообщений: 47
|
|
Проверка наличия соединения GetAdaptersInfo24.06.2011, 14:12. Показов 1311. Ответов 5
Метки нет (Все метки)
Как-то Вы интересовались, как определить соединение с интернет...
К сожалению, тот топик я не нашел, и не знаю нашли ли Вы что хотели. Вот недавно, в ходе освоения функции GetAdaptersInfo(ai, dwSize) набрел на следующую особенность: Функция у меня всегда выдавала, что требуемый размер буфера dwSize=640 байт, когда я не в инете, и dwSize=1280 байт - когда в инете, т.е. две структуры IP_ADAPTER_INFO. Функция в любом случае сразу возвращает управление. В итоге мысля такая: сколько бы функция не возвращала в dwSize (кратно 640) проверяем ai.Type для каждой структуры на предмет равенства MIB_IF_TYPE_PPP. Если нашли, то мы в Dualup!
0
|
|
| 24.06.2011, 14:12 | |
|
Ответы с готовыми решениями:
5
Проверка наличия каталога Проверка наличия доступа к папке (по сети)
|
|
Comanche
|
|
| 24.06.2011, 17:09 | |
|
Спасибо за информацию. Однако, для диал-апа проще использовать RAS API. Когда, конечно, точно знаешь, что в Сеть ходят через диал-ап! - ведь даже если RAS установлен, то ещё не факт, что в Сеть ходят именно через него - вполне может быть ещё и выделенка! Т.е. все существующие RAS-соединения могут быть неактивны, а комп может быть при этом запросто в Сети.
И основная проблема состоит в том, что с уверенностью можно сказать только одно: 'Если RAS не установлен, или же установлен, но число RAS-соединений равно нулю, то для выхода в Сеть RAS НЕ ИСПОЛЬЗУЕТСЯ' ) а толку от этой инфы мало, прямо скажем. Вот если бы точно можно было сказать, что у ДАННОГО компа нет никаких технических возможностей выйти в Сеть, кроме как через модем, то проверку коннекта можно было бы делать хоть твоим способом, хоть обычным через RAS API - вариант с выходом через LAN исключался бы. Но и это было бы не особо надёжно: а вдруг ты под 'гостевым диал-ап соединением' к провайдеру, т.е. деньги на счёт кладёшь?! и ходу тебе будет только на сайт провайдера (пример - московский МТУ-Интел).Проблема - в том, что как только есть LAN, то нет стопроцентно-точного рецепта сказать, используют ли её для выхода в Сеть (и возможно ли это вообще). Кроме как попробовать выйти в Сеть, конечно ) на чём я и остановился в итоге.
|
|
|
1 / 1 / 0
Регистрация: 22.04.2011
Сообщений: 47
|
|
| 24.06.2011, 17:45 [ТС] | |
|
>>Вот если бы точно можно было сказать, что у ДАННОГО компа нет никаких технических возможностей выйти в Сеть, кроме как через модем...
Так, и я о том же: если ни в одной структуре (обычно в самой первой) ai(i).Type <> MIB_IF_TYPE_ETHERNET and ai(i).Type <> MIB_IF_TYPE_TOKENRING, то нет никакой сетевой карты для LAN, соединение может быть только по dialup... У меня нет возможности проверить выделенку и не заню, что будет в ai(i).Type в этом сдучае, но думаю, что и для него что-то определенное. Вот о чем я...
0
|
|
|
Comanche
|
|
| 24.06.2011, 17:51 | |
|
Теперь понял. Надо будет проверить на досуге...
|
|
|
1 / 1 / 0
Регистрация: 22.04.2011
Сообщений: 47
|
|
| 24.06.2011, 17:52 [ТС] | |
|
>> а вдруг ты под 'гостевым диал-ап соединением' к провайдеру
Если я правильно понял, то GetAdaptersInfo возвращает информацию именно о задействованном оборудовании, а не о том, каким образом это оборудование задействовано, т.е. если есть диал-ап то и будет возвращать инфу об этом гостевой он или нет. К сожалению, это мои предположения. Проверить не могу...
0
|
|
|
Comanche
|
|
| 24.06.2011, 20:58 | |
|
Конечно ты прав: ну откуда винде знать, гостевое соединение или нет... даже юзер может не знать этого
не о том речь, просто как ни крути - проверять наличие коннекта к Сети нужно через попытку осуществления оного, и никак иначе! и по фигу, RAS или LAN, гостевое или нет. Если проверка коннекта нужна ТОЛЬКО для обновления СВОЕЙ программы со СВОЕГО ftp-сервера, то вообще признаком наличия коннекта можно считать доступность этого своего сервера, и всё; и плевать, что при этом больше ничё не работает ) ведь всё равно Инет больше ни для чего ДАННОЙ проге не нужен. А вот если прога даёт юзеру шанс вылазить в Сеть куда-угодно (в т.ч. смотреть почту), то тут надо для себя решить, какой сайт 'пинговать'. Я выбрал для себя парочку Yahoo + Google. Пингую через ICMP (спасибо за совет Мессиру - это самый быстрый вариант!), и если не прошло - то пробую ещё разик по винсоку (запросом заголовка). Если и тут не прошло - то нет коннекта.Критика принимается )
|
|
| 24.06.2011, 20:58 | |
|
Помогаю со студенческими работами здесь
6
Проверка соединения с MSSQL Server для Win NT 4.0, проверка соединения с инетом Проверка наличия соединения с интернет, VC++ Проверка наличия интернет соединения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа.
В качестве фильтра для отбора служит предопределенное значение перечислений.
Процедура. . .
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|