Определение интернет-соединения клиента (InternetGetConnectedState() лежит)

Кажется, я не единственный, кто обнаружил это: http://forums.devx.com/showthread.php?t=72771

На самом деле оба:

ИнтернетGetConnectedState

InternetGetConnectedStateEx

не правильно отчитываются. Когда я подключен, он возвращает 0x12, а когда я не подключен, он возвращает 0x10 (0x10 не определен) http://msdn.microsoft.com/en-us/library/aa384705(VS.85).aspx

Кто-нибудь хочет угадать определение 0x10 в WinXP SP3?

Прочитав на этом форуме некоторые предложения по тестированию на наличие подключения к Интернету (C/C++), например Как программно протестировать HTTP-соединение?

Я бы написал функцию WinHTTP для возврата заголовков главной веб-страницы сервера, за исключением того, что сервер, к которому я хочу проверить соединение, запускает только приложения CGI. Я бы предпочел не тратить драгоценную память сервера и ресурсы процессора на подтверждение тысяч подключений клиентов.

любые другие предложения?


person Mike Trader    schedule 14.06.2009    source источник


Ответы (2)


InternetGetConnectedState/Ex() возвращает DWORD, представляющий собой битовую маску из нескольких значений. Значение 0x12 представляет собой комбинацию INTERNET_CONNECTION_LAN (0x02) и INTERNET_CONNECTION_RAS_INSTALLED (0x10). Итак, когда вы подключены, сообщается INTERNET_CONNECTION_LAN, а когда вы отключены, INTERNET_CONNECTION_LAN опускается.

person Remy Lebeau    schedule 21.07.2009

Конечно, 0x10 не является комбинацией возможных флагов?

например здесь я нашел WIN API Internet Подключайтесь Состояние

INTERNET_CONNECTION_RAS_INSTALLED = 0x10
person jitter    schedule 14.06.2009