Архивы по Категориям: RAS API

Программное создание PPPoE подключения

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <windows.h>
#include <Ras.h>
 
void main()
{
	RASENTRY RS;
	memset(&RS, 0, sizeof(RASENTRY));
	RS.dwSize = sizeof(RS);
	RS.dwfOptions = RASEO_PreviewUserPw |
	RASEO_ModemLights |
	// RASEO_PreviewDomain |        // отображать поле "Домен" в окне ввода пользователя и пароля (вкладка "Параметры" - установить флажок "Включать домен входа в Windows")
	RASEO_ShowDialingProgress |     // вкладка "Параметры" - Параметры набора номера: установить флажок "Отображать ход подключения"
	RASEO_RemoteDefaultGateway |    // вкладка "Сеть" - "Протокол Интернета (TCP/IP)" - кнопка "Дополнительно" - установить флажок "Использовать основной шлюз в удаленной сети"
	RASEO_SwCompression |           // вкладка "Сеть" - кнопка "Параметры" - установить флажок "Использовать программное сжатие данных"
	// RASEO_RequirePAP |           // вкладка "Безопасность" - "Дополнительные (выборочные параметры)" - установить флажок "Незашифрованный пароль (PAP)"
	// RASEO_RequireSPAP |          // вкладка "Безопасность" - "Дополнительные (выборочные параметры)" - установить флажок "Протокол проверки пароля Shiva (SPAP)"
	RASEO_RequireCHAP |             // вкладка "Безопасность" - "Дополнительные (выборочные параметры)" - установить флажок "Протокол проверки пароля CHAP"
	// RASEO_RequireMsCHAP |        // вкладка "Безопасность" - "Дополнительные (выборочные параметры)" - установить флажок "Протокол проверки пароля Microsoft (MS-CHAP)"
	// RASEO_RequireW95MSCHAP |     // вкладка "Безопасность" - "Дополнительные (выборочные параметры)" - установить флажок "Разрешить старый протокол MS-CHAP для Windows 95"
	RASEO_RequireMsCHAP2 |          // вкладка "Безопасность" - "Дополнительные (выборочные параметры)" - установить флажок "Протокол проверки пароля Microsoft (MS-CHAP v2)"
	RASEO_SecureLocalFiles;          // вкладка "Сеть" - Компоненты, используемые этим подключением: снять флажок "Использовать основной шлюз в удаленной сети";
	RS.dwfOptions2 = RASEO2_DontNegotiateMultilink | RASEO2_ReconnectIfDropped;
	RS.dwfNetProtocols = RASNP_Ip;             // протокол Интернета
	RS.dwFramingProtocol = RASFP_Ppp;            // протокол Point-to-Point Protocol
	RS.dwType = RASET_Broadband;      // тип подключения
	RS.dwVpnStrategy = VS_Default;           // вкладка "Сеть" - По умолчанию
	RS.dwEncryptionType = ET_Optional;          // параметры шифрования (ET_None, ET_Require, ET_RequireMax, ET_Optional)
	RS.dwDialMode = RASEDM_DialAll;
	RS.dwRedialCount = 99;                   // число повторов набора номера
	RS.dwRedialPause = 120;                  // интервал между повторениями
	lstrcpy(RS.szLocalPhoneNumber, TEXT("windowsapi.ru"));
	lstrcpy(RS.szDeviceType, RASDT_PPPoE);             // RASDT_PPPoE - обуславливает тип подключения (PPPoE)
	lstrcpy(RS.szDeviceName, TEXT("PPPoE"));
 
 	DWORD dwRet = RasSetEntryProperties(NULL,TEXT("PPPoE"), &RS, sizeof(RS), NULL, 0);
 
	switch (dwRet)
	{
	case ERROR_ACCESS_DENIED:
		//cout << TEXT("The user does not have the correct privileges. Only an administrator can complete this task.");
		break;
	case ERROR_BUFFER_OVERFLOW:
		//cout << TEXT("The address or buffer specified by lpRasEntry is invalid.");
		break;
	case ERROR_CANNOT_OPEN_PROFILE:
		//cout<<TEXT("The phone book is corrupted or missing components.");
		break;
	case ERROR_INVALID_PARAMETER:
		//cout<<TEXT("The RASENTRY structure pointed to by the lpRasEntry parameter does not contain adequate information. See the description for lpRasEntry to see what information is required.");
		break;
	case ERROR_SUCCESS:
		break;
	}
}