Как скрытно проверить подключен ли компьютер к интернету? (кроме connect к www.microsoft.com (это вызывает появление окошко "подключиться по модему") и InternetGetConnectedState (крайне не точно определяет состояние) )
infern0 нет почему обязательно в локальной? Именно в сети! в интерете или в локальной. А если чел еще и в локальной сети сидит то проверить именно подключен ли к интернету можно, наверно, сравнением IP'шника с его адресом в локальной сети..
а если ping сделать на тот же Microsoft? только что проверил - пинг на майкрософт не идет, а вот c google все ok
Ну с проксей , каторая нахдится в локальной сети? Ну низнаю, это наверно большая локальная сеть должна быть... Ну что там в локальной сети 100 проксей штоли? Их в любом случае немного, паэтому можно сравнить с адресом каждой... Или я не понял, нужна универсальная проверка? Но пинг на Микрософт действительно эффективней будет...
Это.. Я может быть сейчас глупость скажу, но вроде бы все адреса в локальной сети начинаются с 192. ? Может глупость канечно-же, но если это всетаки так то можно проста сравнивать адрес сначала с 127.0.0.1, а патом первые три цифры адреса с 192! вот так можно все проверить...
MuZiKaNT в локальной сети начинаются с 192 Глупость. В локальной сети делай что хочешь, на то она и локальная сеть.
q_q прав, но и музыкант не далёк от истины, такие айпишники в локалке выставляются ленивыми админами, есть там какой-то диапазон в винде из которого можно выбирать айпишники. нужно посмотреть в документации.
sl0n Зарезервированными для локальной сети считаются адреса 192.168.x.y - с маской 255.255.255.0 10.x.y.z - с маской 255.255.0.0 169.254.x.y - 255.255.0.0 (APIPA) Но ничто не запрещает использовать АБСОЛЮТНО любые адреса в локальной сети (во избежание конфликтов желательно всеж чтоб они не пересекались с зарезервировынми адресами типа 127.0.0.1, 224.0.0.1 и т.п.)
Да, я это тоже выяснил, точнее это знал так как сам сижу в локалке, но чота забыл, действительно айпи можно поставить практическаи любой
Чтобы окно вызова не появлялось, нужно действительно сначала проверить InternetGetConnectedState и только после этого доступность сервера, например, через GetHostByName.
ping не проканает на многих проксях. то же самое будет и с connect если прокси требует авторизации. GetHostByName не гарантирует что интернет есть, т.к. хост может локально отресолвится.
правильнее будет так: There are also special addresses that are reserved for 'unconnected' networks - that is networks that use IP but are not connected to the Internet, These addresses are:- One A Class Network 10.0.0.0 / mask 255.0.0.0 16 B Class Networks 172.16.0.0 - 172.31.0.0 / mask 255.255.0.0 256 C Class Networks 192.168.0.0 - 192.168.255.0 / mask 255.255.255.0
sl0n При чем тут ленивые админы? Стоят у меня дома два компьютера. Выхода в мир не держу. Соединил их по TCP/IP. Могу использовать любые IP-адреса.
А типа вопрос был как определить машина в инете или нет А тебе для чего это надо ? Посмотри как это делает icqnetdetect или детектор от сумантека и иже с ними Или тебе это надо делать скрытно ?
* оединил их по TCP/IP. Могу использовать любые IP-адреса. * Можешь. Но согласно стандарта должен использовать из вышеприведенного диапазона.
Можно так: Код (Text): .... .... ; Проверяем, имеется или удаленное соединение @call [IsNetworkAlive],n_a_state or eax,eax jz @done .... .... section '.data' data readable writeable ; n_a_state dd 2