FAQ по C/C++/Visual C++
Работа с сетью Как расшарить папку Вариант 1 |
Составители: SUnteXx, Leprecon |
Подключен ли компьютер к интернету | |||
Существует много способов определения, в сети ли компьютер (имеется в виду не сеть, в которой 220 вольт, а net, в данном случае Internet). Некоторые способы, такие как пингование какого-нибудь IP'шника очень опасны, имхо, по нескольким причинам. Во-первых, если человек не в сети, то высветиться табличка, что "некто пытается соединиться с серваком таким-то, не хотите соединиться (Да/нет)". Можно, конечно, пинговать сайт Microsoft'а и свалить все на вынды, но надо ли это, если есть другие способы. Правильность работы функции не гарантирую, но работать должно (много не тестил эту функцию). #include <windows.h> #include <wininet.h> #include <stdio.h> #include <conio.h> typedef BOOL (WINAPI* INETCHECKPROC) (LPDWORD lpdwFlags, DWORD dwReserved); bool GetStatusConnect() // возвращает 1, если комп подключен к интеренту, в противном случае - 0 { bool bRetVal; HINSTANCE hLib = NULL; INETCHECKPROC pfnInternetGetConnectedState; // грузим (в смысле загружаем) библиотеку wininet.dll hLib = LoadLibrary("wininet.dll"); if (!hLib) // если не получилось загрузить библиотеку, то return 0; // возвращаем 0 // получаем адрес функции InternetGetConnectedState pfnInternetGetConnectedState = (INETCHECKPROC)GetProcAddress(hLib, "InternetGetConnectedState"); // Если не удалось получить адрес функции if(!pfnInternetGetConnectedState) return false; // возвращаем 0 DWORD lpdwFlags; // проверяем соединение bRetVal = pfnInternetGetConnectedState(&lpdwFlags, 0) != 0; FreeLibrary(hLib); // выгружаем библиотеку return bRetVal; // возвращаем статус подключения } void main(void) { printf(GetStatusConnect()?"Connected":"Disconnected"); // выводим статус соединения printf("\r\nPress any key to continue"); // просим юзверя нажать "any key" на клавиатуре while(!_getch()); // ждем нажатия кнопки return; // выходим } |
Вариант 1|||
|
FAQ составлен по материалам Форума на Исходниках.Ру. Copyright © 2002 by Sources.ru. All rights reserved. |