C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Подключен ли компьютер к интернету 1 / Общие вопросы / Сеть

Подключен ли компьютер к интернету
A: (SUnteXx)
Оригинальная ссылка: нету

Вариант 1

Существует много способов определения, в сети ли компьютер (имеется в виду не сеть, в которой 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; // выходим
}