l2tp



  • #include "stdafx.h"   
  • #include "iostream.h"   
  • #include <ras.h>   
  • #include <raserror.h>   
  • #include "rasabsLay.h"   
  •    
  • #define MAX_LOADSTRING 100   
  •    
  • #define RASET_PHONE      1 // Phone lines: modem, ISDN, X.25, etc   
  • #define RASET_VPN        2 // Virtual private network   
  • #define RASET_DIRECT     3 // Direct connect: serial, parallel   
  • #define RASET_INTERNET   4 // BaseCamp internet   
  • #define RASET_BROADHAND  5 // Broadband   
  •    
  • #define VS_DEFAULT   0 // default (PPTP for now)   
  • #define VS_PPTONLY   1 // Only PPTP is attempted.   
  • #define VS_PPTPFIRST 2 // PPTP is tried first.   
  • #define VS_L2TPONLY  3 // Only L2TP is attempted.   
  • #define VS_L2TPFIRST 4 // L2TP is tried first.   
  •    
  • extern "C" __declspec(dllexportint PASCAL add(int a, int b)   
  • {    
  •     return a+b;   
  • }   
  •    
  • bool Create_VPN_Connection = false//Careat VPN successfully or not   
  •    
  • inline void InitRASIP (RASIPADDR& rasIP)   
  • {   
  •         rasIP.a =0;   
  •         rasIP.b =0;   
  •         rasIP.c =0;   
  •         rasIP.d =0;   
  • }   
  •    
  • extern "C" __declspec(dllexportint PASCAL createConn(char *lpszDialupName, char *lpszIPAddress)   
  • {   CRas        ras;   
  •     RASENTRY    rasEntry;   
  •     char        strName[50];//="宽带在线";   
  •    
  •     strcpy (strName, lpszDialupName);   
  •    
  •     //if(ras.RasValidateEntryName(NULL, strName)!=ERROR_SUCCESS)   
  •     //{   
  •     //  PostQuitMessage(0);   
  •     //}   
  •    
  •     DWORD           lpcb    =   0;   
  •     DWORD           lpcDevices;    
  •     RASDEVINFO*     lpRasDevInfo;   
  •     RASDEVINFO      rasdevinfo;    
  •        
  •     RasEnumDevices(NULL, &lpcb, &lpcDevices);   
  •     lpRasDevInfo = (LPRASDEVINFO) GlobalAlloc(GPTR, lpcb);   
  •     lpRasDevInfo->dwSize = sizeof(RASDEVINFO);   
  •     RasEnumDevices(lpRasDevInfo, &lpcb, &lpcDevices);   
  •     strcpy (rasdevinfo.szDeviceName, lpRasDevInfo->szDeviceName);   
  •     strcpy (rasdevinfo.szDeviceType, lpRasDevInfo->szDeviceType);   
  •    
  •     rasEntry.dwSize             = sizeof (RASENTRY);   
  •     //rasEntry.dwfOptions           = RASEO_RemoteDefaultGateway | RASEO_SpecificNameServers;   
  •     //rasEntry.dwfOptions         = RASEO_RequireMsEncryptedPw | RASEO_RequireDataEncryption;   
  •     rasEntry.dwAlternateOffset  = 0;   
  •     rasEntry.dwCountryID        = 86;   
  •     rasEntry.dwCountryCode      = 86;   
  • //  rasEntry.dwDialExtraPercent = 75;   
  • //  rasEntry.dwDialExtraSampleSeconds = 120;   
  • //  rasEntry.dwDialMode         = 1;   
  •     rasEntry.dwfNetProtocols = 4;   
  •     rasEntry.dwfOptions = 1024262928;   
  • //  rasEntry.dwfOptions2 = 367;   
  •     rasEntry.dwFramingProtocol = 1;   
  • //  rasEntry.dwHangUpExtraPercent = 10;   
  • //  rasEntry.dwHangUpExtraSampleSeconds = 120;   
  • //  rasEntry.dwRedialCount = 3;   
  • //  rasEntry.dwRedialPause = 60;   
  • //  rasEntry.dwType = RASET_VPN;   
  •    
  •     rasEntry.dwFrameSize        = 0;   
  •     rasEntry.dwfNetProtocols    = RASNP_Ip;     // TCP/IP   
  •     rasEntry.dwFramingProtocol  = RASFP_Ppp;    //PPP   
  •     rasEntry.dwChannels         = 0;   
  •     rasEntry.dwReserved1        = 0;   
  •     rasEntry.dwReserved2        = 0;       
  •    
  •     // Strings   
  •     strcpy (rasEntry.szAreaCode, " ");   
  •     strcpy (rasEntry.szScript, "");   
  •     strcpy (rasEntry.szAutodialDll, "");   
  •     strcpy (rasEntry.szAutodialFunc, "");   
  •     strcpy (rasEntry.szX25PadType, "");   
  •     strcpy (rasEntry.szX25Address, "");   
  •     strcpy (rasEntry.szX25Facilities, "");   
  •     strcpy (rasEntry.szX25UserData, "");   
  •     //strcpy (rasEntry.szDeviceType, rasdevinfo.szDeviceType );   
  •     //strcpy (rasEntry.szDeviceName, rasdevinfo.szDeviceName);   
  •     strcpy (rasEntry.szDeviceName,"WAN 微型端口 (L2TP)");   
  •     strcpy (rasEntry.szDeviceType, "vpn");     
  •     strcpy (rasEntry.szLocalPhoneNumber,lpszIPAddress);// "60.190.168.108");//服务器地址或域名   
  •     strcpy (rasEntry.szDeviceType, "vpn");     
  •     strcpy (rasEntry.szDeviceType, "vpn");     
  •    
  • //  rasEntry.dwVpnStrategy = VS_DEFAULT;     //vpn类型   
  • //  rasEntry.dwEncryptionType = ET_OPTIONAL; //数据加密类型       
  •    
  •     // IP addresses   
  •     InitRASIP (rasEntry.ipaddr);   
  •     InitRASIP (rasEntry.ipaddrDns);   
  •     InitRASIP (rasEntry.ipaddrDnsAlt);   
  •     InitRASIP (rasEntry.ipaddrWins);   
  •     InitRASIP (rasEntry.ipaddrWinsAlt);   
  •    
  •     //Create Entry   
  •     DWORD           dwError;   
  •        
  •     dwError = ras.RasSetEntryProperties (NULL, strName, &rasEntry, sizeof (RASENTRY), NULL, NULL);   
  •     if (dwError == 0)    
  •     {   
  •         RASDIALPARAMS   dialParm;   
  •         dialParm.dwSize = sizeof (RASDIALPARAMS);   
  •    
  •         strcpy (dialParm.szEntryName, strName);   
  •         strcpy (dialParm.szPhoneNumber, "");   
  •         strcpy (dialParm.szCallbackNumber,"");   
  •         strcpy (dialParm.szUserName,"");   
  •         strcpy (dialParm.szPassword,"");   
  •         strcpy (dialParm.szDomain, "");   
  •         dwError = ras.RasSetEntryDialParams(NULL, &dialParm,FALSE);   
  •        
  •         //dwError = ras.RasSetCredentials(NULL, strName, &rasEntry, 0);   
  •         if (dwError == 0)   
  •             Create_VPN_Connection = true;   
  •     }   
  •     return dwError;   
  • #include "stdafx.h"   
  • #include "iostream.h"   
  • #include <ras.h>   
  • #include <raserror.h>   
  • #include "rasabsLay.h"   
  •    
  • #define MAX_LOADSTRING 100   
  •    
  • #define RASET_PHONE      1 // Phone lines: modem, ISDN, X.25, etc   
  • #define RASET_VPN        2 // Virtual private network   
  • #define RASET_DIRECT     3 // Direct connect: serial, parallel   
  • #define RASET_INTERNET   4 // BaseCamp internet   
  • #define RASET_BROADHAND  5 // Broadband   
  •    
  • #define VS_DEFAULT   0 // default (PPTP for now)   
  • #define VS_PPTONLY   1 // Only PPTP is attempted.   
  • #define VS_PPTPFIRST 2 // PPTP is tried first.   
  • #define VS_L2TPONLY  3 // Only L2TP is attempted.   
  • #define VS_L2TPFIRST 4 // L2TP is tried first.   
  •    
  • extern "C" __declspec(dllexportint PASCAL add(int a, int b)   
  • {    
  •     return a+b;   
  • }   
  •    
  • bool Create_VPN_Connection = false//Careat VPN successfully or not   
  •    
  • inline void InitRASIP (RASIPADDR& rasIP)   
  • {   
  •         rasIP.a =0;   
  •         rasIP.b =0;   
  •         rasIP.c =0;   
  •         rasIP.d =0;   
  • }   
  •    
  • extern "C" __declspec(dllexportint PASCAL createConn(char *lpszDialupName, char *lpszIPAddress)   
  • {   CRas        ras;   
  •     RASENTRY    rasEntry;   
  •     char        strName[50];//="宽带在线";   
  •    
  •     strcpy (strName, lpszDialupName);   
  •    
  •     //if(ras.RasValidateEntryName(NULL, strName)!=ERROR_SUCCESS)   
  •     //{   
  •     //  PostQuitMessage(0);   
  •     //}   
  •    
  •     DWORD           lpcb    =   0;   
  •     DWORD           lpcDevices;    
  •     RASDEVINFO*     lpRasDevInfo;   
  •     RASDEVINFO      rasdevinfo;    
  •        
  •     RasEnumDevices(NULL, &lpcb, &lpcDevices);   
  •     lpRasDevInfo = (LPRASDEVINFO) GlobalAlloc(GPTR, lpcb);   
  •     lpRasDevInfo->dwSize = sizeof(RASDEVINFO);   
  •     RasEnumDevices(lpRasDevInfo, &lpcb, &lpcDevices);   
  •     strcpy (rasdevinfo.szDeviceName, lpRasDevInfo->szDeviceName);   
  •     strcpy (rasdevinfo.szDeviceType, lpRasDevInfo->szDeviceType);   
  •    
  •     rasEntry.dwSize             = sizeof (RASENTRY);   
  •     //rasEntry.dwfOptions           = RASEO_RemoteDefaultGateway | RASEO_SpecificNameServers;   
  •     //rasEntry.dwfOptions         = RASEO_RequireMsEncryptedPw | RASEO_RequireDataEncryption;   
  •     rasEntry.dwAlternateOffset  = 0;   
  •     rasEntry.dwCountryID        = 86;   
  •     rasEntry.dwCountryCode      = 86;   
  • //  rasEntry.dwDialExtraPercent = 75;   
  • //  rasEntry.dwDialExtraSampleSeconds = 120;   
  • //  rasEntry.dwDialMode         = 1;   
  •     rasEntry.dwfNetProtocols = 4;   
  •     rasEntry.dwfOptions = 1024262928;   
  • //  rasEntry.dwfOptions2 = 367;   
  •     rasEntry.dwFramingProtocol = 1;   
  • //  rasEntry.dwHangUpExtraPercent = 10;   
  • //  rasEntry.dwHangUpExtraSampleSeconds = 120;   
  • //  rasEntry.dwRedialCount = 3;   
  • //  rasEntry.dwRedialPause = 60;   
  • //  rasEntry.dwType = RASET_VPN;   
  •    
  •     rasEntry.dwFrameSize        = 0;   
  •     rasEntry.dwfNetProtocols    = RASNP_Ip;     // TCP/IP   
  •     rasEntry.dwFramingProtocol  = RASFP_Ppp;    //PPP   
  •     rasEntry.dwChannels         = 0;   
  •     rasEntry.dwReserved1        = 0;   
  •     rasEntry.dwReserved2        = 0;       
  •    
  •     // Strings   
  •     strcpy (rasEntry.szAreaCode, " ");   
  •     strcpy (rasEntry.szScript, "");   
  •     strcpy (rasEntry.szAutodialDll, "");   
  •     strcpy (rasEntry.szAutodialFunc, "");   
  •     strcpy (rasEntry.szX25PadType, "");   
  •     strcpy (rasEntry.szX25Address, "");   
  •     strcpy (rasEntry.szX25Facilities, "");   
  •     strcpy (rasEntry.szX25UserData, "");   
  •     //strcpy (rasEntry.szDeviceType, rasdevinfo.szDeviceType );   
  •     //strcpy (rasEntry.szDeviceName, rasdevinfo.szDeviceName);   
  •     strcpy (rasEntry.szDeviceName,"WAN 微型端口 (L2TP)");   
  •     strcpy (rasEntry.szDeviceType, "vpn");     
  •     strcpy (rasEntry.szLocalPhoneNumber,lpszIPAddress);// "60.190.168.108");//服务器地址或域名   
  •     strcpy (rasEntry.szDeviceType, "vpn");     
  •     strcpy (rasEntry.szDeviceType, "vpn");     
  •    
  • //  rasEntry.dwVpnStrategy = VS_DEFAULT;     //vpn类型   
  • //  rasEntry.dwEncryptionType = ET_OPTIONAL; //数据加密类型       
  •    
  •     // IP addresses   
  •     InitRASIP (rasEntry.ipaddr);   
  •     InitRASIP (rasEntry.ipaddrDns);   
  •     InitRASIP (rasEntry.ipaddrDnsAlt);   
  •     InitRASIP (rasEntry.ipaddrWins);   
  •     InitRASIP (rasEntry.ipaddrWinsAlt);   
  •    
  •     //Create Entry   
  •     DWORD           dwError;   
  •        
  •     dwError = ras.RasSetEntryProperties (NULL, strName, &rasEntry, sizeof (RASENTRY), NULL, NULL);   
  •     if (dwError == 0)    
  •     {   
  •         RASDIALPARAMS   dialParm;   
  •         dialParm.dwSize = sizeof (RASDIALPARAMS);   
  •    
  •         strcpy (dialParm.szEntryName, strName);   
  •         strcpy (dialParm.szPhoneNumber, "");   
  •         strcpy (dialParm.szCallbackNumber,"");   
  •         strcpy (dialParm.szUserName,"");   
  •         strcpy (dialParm.szPassword,"");   
  •         strcpy (dialParm.szDomain, "");   
  •         dwError = ras.RasSetEntryDialParams(NULL, &dialParm,FALSE);   
  •        
  •         //dwError = ras.RasSetCredentials(NULL, strName, &rasEntry, 0);   
  •         if (dwError == 0)   
  •             Create_VPN_Connection = true;   
  •     }   
  •     return dwError;   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值