Як визначити ras з’єднання з инетом на c »пізнавальний блог
Як визначити RAS з'єднання з инетом на c ++
Як визначити RAS з'єднання з інтернетом на c ++.
RAS - Remote Access Service. Дозволяє віддалено підключатися до мереж з використанням віддаленого з'єднання (модем). Саме так я потрапляю в Інтернет. Запускаю віддалений доступ. Він дзвонить і входить в мережу.
typedef struct _RASCONN DWORD dwSize;
HRASCONN hrasconn;
TCHAR szEntryName [RAS_MaxEntryName + 1];
#if (WINVER> = 0x400)
CHAR szDeviceType [RAS_MaxDeviceType + 1];
CHAR szDeviceName [RAS_MaxDeviceName + 1];
#endif
> RASCONN;
Далі ми оголосили дві змінні. Вони нам знадобляться. Потім в перший елемент структури в поле dwSize ми помістили розмір 1 записи з масиву структур, тобто розмір однієї структури. Навіщо. Подивіться опис структури, при різних версіях, розмір різний. Функція sizeof () як раз цей розмір і вирахувала. І весь розмір масиву вирахували. Потрібен він далі.
RasEnumConnections перевіряє наявність з'єднання. Результат у неї якраз не кількість з'єднань, а успішність звернення до динамічної бібліотеці. Адже її може не бути або вона може бути зіпсована. В цю функцію ми передаємо масив ras, покажчик на розмір масиву. І покажчик на число куди повернеться кількість з'єднань. Чому покажчик, тому що це буде використано для повернення результату. Як інакше, якщо функція повертає успішність свого виклику?
Якщо функція виконана, то в dNumber буде записано кількість з'єднань. Якщо з'єднання є, то в масив повернеться про них інформація. За допомогою for ми пробігаємо по масиву і виводимо інформацію.
А тепер зберіть і запустіть програму. Якщо у Вас немає з'єднання, то на екрані з'явиться 0 і буде чекати натискання клавіші. А тепер запустіть з'єднання. У момент перевірки пароля для входу в систему можете запустити програму. Вона покаже вам 1 і ім'я з'єднання, яке описано в DialUp.
І останнє. Як перевірити два з'єднання з одним модемом. Зробіть з'єднання з альтернативним ім'ям, щоб їх було два. Запустіть з першим ім'ям. Після зв'язку. Запустіть з другим. Ось друге і не запуститься. Вам повідомлять про те, що модем використовується - помилка 6. В цей момент запустіть Вашу програму і вона покаже два з'єднання з іменами.
#include
#include
#include
BOOL IsInternetConnected ()
DWORD nRasDevices = 20;
DWORD nSize = 20;
RASCONN rasconnected [10]; // Ras Connected struct
rasconnected [0] .dwSize = sizeof (RASCONN);
RasEnumConnections (rasconnected, nSize, nRasDevices);
return (BOOL (nRasDevices));
>
int main (int argc, char * argv [])
if (IsInternetConnected ())
printf ( "connect");>
else
printf ( "no connect");
getchar ();
return 0;
>