27th
Июн

Как создать vpn-подключение средствами ras?

Posted by Chas under Пост-обзор

MalCer:
Работающий код прилагаю:

#include 
#include
#include

#pragma comment (lib, "RASAPI32.lib")

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
RASENTRYW re;
DWORD dwFlags;
DWORD dwFlags2;
DWORD dwSize;
DWORD SizeInfo;

dwSize = sizeof(RASENTRY);

RasGetEntryProperties(0, 0, 0, &SizeInfo, 0, 0);
if (SizeInfo < dwSize)
{
dwSize = SizeInfo;
}

memset(&re, 0, dwSize);

dwFlags = RASEO_PreviewUserPw |RASEO_ModemLights |RASEO_ShowDialingProgress |
RASEO_RemoteDefaultGateway |RASEO_RequireEncryptedPw |
RASEO_RequireDataEncryption |RASEO_RequireMsEncryptedPw;

dwFlags2 = RASEO2_DontNegotiateMultilink | RASEO2_ReconnectIfDropped;

re.dwSize = dwSize;

re.dwfOptions =dwFlags;
re.dwfOptions2 = dwFlags2;

re.dwfNetProtocols = RASNP_Ip;
re.dwFramingProtocol = RASFP_Ppp;
re.dwType=RASET_Vpn;
re.dwVpnStrategy = VS_Default;
re.dwEncryptionType = ET_Optional;
re.dwDialMode = RASEDM_DialAll;

re.dwRedialCount = 3;
re.dwRedialPause = 60;

lstrcpyW(re.szDeviceType, _T("vpn"));
lstrcpyW(re.szLocalPhoneNumber, _T("my.vpn.server.ru"));
lstrcpyW(re.szDeviceName, RASDT_Vpn);

if (RasSetEntryPropertiesW(NULL, _T("myVPN"), &re,dwSize, NULL, 0))
{

MessageBox(0,_T("ошибка RasSetEntryProperties"), 0,MB_ICONWARNING);
}
else MessageBox(0,_T("подключение создалось"),_T("Ok"),MB_OK);

return 0;
}

тема на форуме

Похожие статьи

Теги: | |