¾ÖÓòÍøÍ¬²½PPPoEÖ®RAS
2007-11-25 13:52:02
°æÈ¨ÉùÃ÷£ºÔ´´×÷Æ·£¬ÔÊÐí×ªÔØ£¬×ªÔØÊ±ÇëÎñ±ØÒÔ³¬Á´½ÓÐÎʽ±êÃ÷ÎÄÕ Ôʼ³ö´¦ ¡¢×÷ÕßÐÅÏ¢ºÍ±¾ÉùÃ÷¡£·ñÔò½«×·¾¿·¨ÂÉÔðÈΡ£http://kittsoft.blog.51cto.com/37346/52128 |
½üÈÕÎÒÒ»Ö±ÔÚ¿ª·¢Ò»¸ö¿ÉÒÔÔÚ¾ÖÓòÍøÄÚÓÉһ̨·þÎñ¶Ë¿ØÖÆÆäËûÖ÷»úͬ²½²¦ºÅµÄÈí¼þ£¬»·¾³ÊÇÕâÑùµÄ£¬´ó¼Ò¶¼Ê¹ÓÃWindowsXP OS£¬¶øÇÒʹÓÃͬһ¸ö¿í´øÕʺţ¬Èç´ËÏë¶¼ÄÜÉÏÍøÓÐÒ»ÖÖ·½·¨£¬¼´´ó¼Ò»¥ÏàÅäºÏͬʱ²¦ºÅ£¨ÒѾÊÔÑé¹ý£©¡£
ÎҵĴó¸ÅÉè¼ÆÊÇÕâÑùµÄ£¬²ÉÓÃc/s½á¹¹£¬ÓÉ·þÎñ¶ËÏò¸÷¿Í»§¶Ë·¢ËÍÖ¸Á¿Í»§¶Ë½ÓÊÕµ½Ö¸Áîºó½øÐÐÏàÓ¦²Ù×÷¡£Èç´Ë£¬Õâ¸öÈí¼þ¾ÍÓÐÁ½´ó²¿·Ö×é³É£¬¼´serverºÍclient¶ÔͨÐÅϵͳÒÔ¼°clientµÄ²¦ºÅϵͳ¡£
²¦ºÅϵͳÖ÷Òª²ÉÓÃWin32 APIÖеÄRAS£¨remote access service£©APIʵÏÖ£¬´ËǰÎÒ½Ó¹ýÒ»¸öʵÏÖVPN¿Í»§¶ËµÄÏîÄ¿£¬ÓÉÓÚµ±Ê±È±·¦¶ÔRASµÄÁ˽â¾ÍزÕÛÁË¡£¹ØÓÚRAS¶Ô¸÷Öֲο¼´ó¼Ò¿ÉÒÔÔÚMSDNµÄÈçÏÂλÖÃÕÒµ½£º
Win32ºÍCOM¿ª·¢->Networking->Routing and Remote Access Service->SDK Documentation->Remote Access Service
ÔÚÕâÀïÓÐËùÓÐAPIº¯ÊýºÍ¸÷ÖֽṹµÄÏêϸÐÅÏ¢¡£
ÔÚ²»Éæ¼°Modemµ½²¦ºÅÖУ¬×îÖØÒªµÄ½á¹¹ÊÇRASDIALPARAMS£¬ÆäÖдæ·ÅµÄÊDz¦ºÅÁ¬½ÓµÄ¸÷ÖÖÐÅÏ¢¡£½á¹¹ÈçÏ£º
typedef struct _RASDIALPARAMS {
DWORD dwSize TCHAR szEntryName[RAS_MaxEntryName + 1]; TCHAR szPhoneNumber[RAS_MaxPhoneNumber + 1]; TCHAR szCallbackNumber[RAS_MaxCallbackNumber + 1]; TCHAR szUserName[UNLEN + 1]; TCHAR szPassword[PWLEN + 1]; TCHAR szDomain[DNLEN + 1] ; #if (WINVER >= 0x401) DWORD dwSubEntry; ULONG_PTR dwCallbackId;
#endif } RASDIALPARAMS; ÆäÖÐdwSize±ØÐë³õʼ»¯Îªsizeof(RASDIALPARAMS)£¬szEntryName¾ÍÊÇPCÉÏÒѾ½¨Á¢µÄ½«ÓÃÀ´²¦ºÅµÄÁ¬½ÓµÄÃû³Æ£¬szPhoneNumberÊDz¦ºÅËùÓõĵ绰ºÅÂ룬ÆäÓÅÏȼ¶Òª¸ßÓÚszEntryName£¬Ò²¾ÍÊÇ˵£¬Èç¹û¸ÃÏîÉèÖ㬲¦ºÅʱ½«²¦½Ð´ËºÅÂ룬¶ø²»ÊÇszEntryName¶ÔÓ¦Á¬½ÓÖÐÉ趨µÄºÅÂ룬ÔÚPPP²¦ºÅÖиòÎÊý¿ÉÒÔÉèÖÃΪNULL£¬szCallbackNumberΪ»Ø²¦ºÅÂ룬Ҳ¿ÉÉèÖÃΪNULL£¬szUserNameºÍszPasswordµÄ×÷ÓúÜÃ÷ÏÔ£¬szDomainÔÚ´ËÇé¿öÏ¿ÉÉèÖÃΪ¿Õ£¬ÆäÓà²ÎÊý¿É²»ÉèÖá£
»¹ÓÐÒ»¸ö±È½ÏÖØÒªµÄ½á¹¹£¬ÔÚ½éÉÜÏÂÒ»¸öº¯Êýǰ±ØÐë˵Ã÷£¬RASCONN
typedef struct _RASCONN {
DWORD dwSize; HRASCONN hrasconn; TCHAR szEntryName[RAS_MaxEntryName + 1]; #if (WINVER >= 0x400) TCHAR szDeviceType[ RAS_MaxDeviceType + 1 ]; TCHAR szDeviceName[ RAS_MaxDeviceName + 1 ]; #endif #if (WINVER >= 0x401) TCHAR szPhonebook [ MAX_PATH ]; DWORD dwSubEntry; #endif #if (WINVER >= 0x500) GUID guidEntry; #endif #if (WINVER >= 0x501) DWORD dwFlags; LUID luid; #endif } RASCONN ; ÔÚ´ËÖ»½éÉÜǰ3¸ö²ÎÊý¡£dwSizeÈÔȻҪ³õʼ»¯Îªsizeof(RASCONN)£¬hrasconnΪijָ¶¨Á¬½Ó¶ÔÓ¦µÄ¾ä±ú£¬szEntryNameºÍÇ°Ãæ½éÉܹýµÄÏàͬ¡£
´Ë´¦½âÊÍÕâô¶à²¢Ã»ÓÐÌ«´ó×÷Óã¬ÎÒÃÇÖ»ÐèÒªµ÷ÓÃRasEnumConnectionsº¯Êý»ñµÃPCÉϲ¦ºÅÁ¬½Ó¶ÔÓ¦µÄszEntryNameÈ»ºó¸³Öµ¸øRASDIALPARAMSµÄszEntryName×ֶμ´¿É£¬µ±È»»¹ÒªÉèÖÃÓû§ÃûºÍÃÜÂë¡£
ÏÂÃæ½éÉÜÏÂRasEnumConnectionsº¯Êý
¸Ãº¯ÊýÓÃÀ´ÁоÙPCÉϵÄËùÓв¦ºÅÁ¬½Ó¡£lprasconnÖ¸ÏòÒ»¸öRASCONNÀàÐ͵ÄÊý×飬ÓÃÀ´´æ·ÅËùµÃµ½µÄÁ¬½ÓµÄÐÅÏ¢£¬lpcb±íÃ÷lprasconnÖ¸ÏòµÄ»º³åÇøµÄ´óС£¬lpcConnections±íʾËùÓÐÁ¬½ÓµÄÊýÄ¿¡£
µ±È»×îÖØÒªµÄº¯Êý»¹ÊDz¦ºÅº¯ÊýRasDial
DWORD RasDial(
LPRASDIALEXTENSIONS lpRasDialExtensions, LPCTSTR lpszPhonebook, LPRASDIALPARAMS lpRasDialParams, DWO LPVOID lpvNotifier, LPHRASCONN lphRasConn );
ÔÚ´ËÎÒÃǹØ×¢ºóÃæ4¸ö²ÎÊý£¬Ç°ÃæÁ½¸ö¿ÉÒÔÉèÖÃΪNULL¡£lpRasDialParamsÊÇÒ»¸öÖ¸ÏòRASDIALPARAMS½á¹¹µÄÖ¸Õ룬ÆäÖоÍÊDz¦ºÅÐèҪʹÓõÄÁ¬½ÓÐÅÏ¢¡£dwNotifierTypeÓÐ4¸ö¿Éѡֵ£ºNULL±íʾ²ÉÓÃͬ²½²¦ºÅ£¬ÆäÓà3¸ö¶¼ÊÇÔÚÒì²½²¦ºÅʱʹÓõģ¬0±íʾÒÔRasDialFuncº¯Êý×÷Ϊ»Øµ÷º¯Êý£¬1±íʾÒÔRasDialFunc1×÷Ϊ»Øµ÷º¯Êý£¬2±íʾÒÔRasDialFunc2×÷Ϊ»Øµ÷º¯Êý£¬»Øµ÷º¯Êý¾ÍÊÇÔÚRasDial·µ»Ø¸÷ÖÖ״̬ʱҪµ÷Óõĺ¯Êý£¬ÐèÒÀÕÕº¯ÊýÇ©ÃûʵÏÖ¡£lpvNotifier¼´ºÍdwNotifierType¶ÔÓ¦µÄ»Øµ÷º¯Êý£¬×îºólphRasConnÖ¸ÏòÁ¬½Ó³É¹¦ºóÒª·µ»ØµÄ¾ä±ú¡£
»¹ÐèÒªÒ»¸öº¯ÊýÀ´·µ»ØPCÉϸ÷¸öÁ¬½ÓµÄ״̬RasGetConnectStatus
DWORD RasGetConnectStatus(
HRASCONN hrasconn , LPRASCONNSTATUS lprasconnstatus ); ¸Ãº¯ÊýÖ»ÓÐÁ½¸ö²ÎÊý£¬hrasconnÊÇÖ¸¶¨Á¬½ÓµÄ¾ä±ú£¬lprasconnstatusÖ¸ÏòRASCONNSTATUS½á¹¹£¬ÓÃÀ´´æ·ÅÁ¬½Ó״̬¡£ ×îºóµÄÒ»¸öº¯Êý
DWORD RasHangUp(
HRASCONN hrasconn );
´ýÐø...
±¾Îijö×Ô ¡°Ìì²Ä֮·¡± ²©¿Í£¬ÇëÎñ±Ø±£Áô´Ë³ö´¦http://kittsoft.blog.51cto.com/37346/52128 ±¾Îijö×Ô 51CTO.COM¼¼Êõ²©¿Í |


kitt1987
²©¿Íͳ¼ÆÐÅÏ¢
ÈÈÃÅÎÄÕÂ
×îÐÂÆÀÂÛ
ÓÑÇéÁ´½Ó