· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› IsInetOnline?

Посл.отвђт Сообщенiе


Дата: Окт 26, 2003 12:02:21

Здравствуйте.
Подскажите, плз, как с пом МАСМ определить подключен ли компьютер к интернету.
Пингование не рассматривать.
Если можно - приведите код, или статью где это есть.
Заранее благодарен.


Дата: Окт 26, 2003 12:32:19

dumpbin /IMPORTS ndetect.exe (или netdetect.exe) - аськин короче.


Дата: Окт 26, 2003 13:04:02

Вот на С++, этот код работает всегда. Опреляет любые подключения, кроме локальных:

BOOL IsConnected(VOID)
{
DWORD dwFlags;
return InternetGetConnectedState(&dwFlags, NULL);
}


Дата: Окт 26, 2003 19:55:56

MrYo
А поиском по форуму воспользоваться?

Этот вопрос уже поднимался... и опускался с исчерпывающим ответом!


Дата: Окт 26, 2003 21:05:44

Декларация на Visual Basic:
Declare Function IsNetworkAlive Lib "SENSAPI.DLL" (ByRef lpdwFlags As Long) As Long

Работает всегда...


Дата: Окт 28, 2003 13:59:33

mov connections,7
invoke InternetGetConnectedState,ADDR connections ,0 ;cрабатывает правда даже тогда когда просто установлена сетевая карта слюбыми параметрами
cmp eax,FALSE
jz ex_it
isonline:
invoke InetIsOffline , 0 ;срабатывает только если была загружена хоть одна страница с инета через средства винды
cmp eax,TRUE
jz ex_it


Дата: Май 29, 2004 01:51:41

BoolIsNetworkAlive(LPDWORDlpdwFlags);
Parameters
lpdwFlags
[in] Provides information on the type of network connection available when the return value is TRUE. The flags can be: 

NETWORK_ALIVE_LAN
The computer has one or more LAN cards that are active.
NETWORK_ALIVE_WAN
The computer has one or more active RAS connections.
NETWORK_ALIVE_AOL
This flag is only valid in Windows 95 and Windows 98. Indicates the computer is connected to the America Online network.


Кто мне скажет, какие значения у выше перечисленных флагов?


Дата: Май 29, 2004 12:46:54
Правка

KiNDeR
#define NETWORK_ALIVE_LAN   0x00000001
#define NETWORK_ALIVE_WAN   0x00000002
#define NETWORK_ALIVE_AOL   0x00000004


Дата: Май 29, 2004 16:40:39

> Вот на С++, этот код работает всегда.
а вот если создать несколько интернет подключений (например, через мопед и gprs), то вызов InternetGetConnectedState проваливается и, кстати говоря, браузер так же считает, что мы не сети... глюк-с! и непонятно чей.
надежнее определять наличие сети через перечисление интерфейсов WSAIoctl/SIO_ADDRESS_LIST_QUERY. в моей статье "побег через брандаузер", опубликованной в "системном администраторе" этот вопрос рассмотрен подробно. если необходимо могу выложить саму статью или только сорец в открытый доступ.


Дата: Май 30, 2004 00:19:52

Пардон, но кому может понадобиться НЕСКОЛЬКО подключений к инету? Мне одного всю жизнь хватало (хотя я еще молод - могу чего-то не понимать).
А насчет глюков могу еще добавить, что при подключении через gprs (возможно через мопед тоже), если усыпить систему, то мобила считает, что она онлайн, а винда при пробуждении напрочь забывает обо всяких там подключениях.

ЗЫ: "усыпить" equ hibernate


Дата: Май 30, 2004 00:40:43

n0p
Пардон, но кому может понадобиться НЕСКОЛЬКО подключений к инету?
Несколько подключений = несколько разных IP-адресов, а кому и зачем нужно несколько IP-адресов догадаться несложно.


Дата: Май 30, 2004 02:05:36

> Пардон, но кому может понадобиться НЕСКОЛЬКО подключений к инету?
многим...

> А насчет глюков могу еще добавить, что при подключении
> через gprs (возможно через мопед тоже), если усыпить
> систему, то мобила считает, что она онлайн, а винда при
> пробуждении напрочь забывает обо всяких там подключениях.
настроить тайм-аут в мобиле и пройтись софт-айсом по винде. чаще всего виноваты кривые драйвера, не поддерживающие менеджера питания.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.093