• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            VC獲得本機網絡連接狀態

            1. //本機網絡連接類型(成功)  
            2. #define  NET_TYPE_RAS_DIAL_UP_CONNECT_NET           0x01    //上網類型:采用RAS撥號連接上網    0x01  
            3. #define  NET_TYPE_LAN_CONNECT_NET                   0x02    //上網類型:采用網卡通過局域網上網 0x02  
            4. #define  NET_TYPE_PROXY_CONNECT_NET                 0x04    //上網類型:使用代理服務器上網     0x04  
            5. #define  NET_TYPE_RAS_INSTALL                       0x10    //RAS安裝                        0x10  
            6.   
            7. //本機網絡連接(失敗)  
            8. #define  NET_TYPE_NO_CONNECT_NET                    0x41    //未連接到網絡  
            9. #define  NET_STATE_VALID_CONNECT_NOCONNECT_NET      0x40    //可以聯網,但當前不可用    0x40  
            10. #define  NET_STATE_MODEM_BUSY                       0x08    //調制解調器 繁忙           0x08  
            11. #define  NET_STATE_SYSTEM_OFFLINE_MODE              0x20    //系統脫機模式              0x20  
            12.   
            13. CheckNet()  
            14. {  
            15. if(!InternetGetConnectedState(&dwOnline, 0))  
            16.     {  
            17.         if (dwOnline & INTERNET_CONNECTION_CONFIGURED )  
            18.         {  
            19.             return NET_STATE_VALID_CONNECT_NOCONNECT_NET;  
            20.         }  
            21.         if (dwOnline & INTERNET_CONNECTION_MODEM_BUSY)  
            22.         {  
            23.             return NET_STATE_MODEM_BUSY;  
            24.         }  
            25.         if (dwOnline & INTERNET_CONNECTION_OFFLINE)  
            26.         {  
            27.             return NET_STATE_SYSTEM_OFFLINE_MODE;  
            28.         }  
            29.   
            30.         return NET_TYPE_NO_CONNECT_NET;  
            31.     }  
            32.   
            33.     if ( dwOnline& INTERNET_CONNECTION_MODEM )      //上網類型:采用RAS撥號連接上網  
            34.     {  
            35.         return  NET_TYPE_RAS_DIAL_UP_CONNECT_NET;     
            36.     }  
            37.   
            38.     else if ( dwOnline&INTERNET_CONNECTION_LAN  )  //上網類型:采用網卡通過局域網上網  
            39.     {  
            40.         return NET_TYPE_LAN_CONNECT_NET;  
            41.     }  
            42.   
            43.     else if ( dwOnline& INTERNET_CONNECTION_PROXY) //在線:代理  
            44.     {  
            45.         return NET_TYPE_PROXY_CONNECT_NET;  
            46.     }  
            47.   
            48.     else if ( dwOnline&INTERNET_CONNECTION_MODEM_BUSY ) //MODEM被其他非INTERNET連接占用  
            49.     {  
            50.         return NET_TYPE_RAS_INSTALL;  
            51.     }  
            52. }  

             

            MSDN中定義了7種參數類型,但實際中wininet.h頭文件中只對四種類型的值進行了定義
            7種類型:
            INTERNET_CONNECTION_LAN          局域網
            INTERNET_CONNECTION_MODEM        撥號上網
            INTERNET_CONNECTION_PROXY       代理
            INTERNET_CONNECTION_MODEM_BUSY  代理被占用
            INTERNET_CONNECTION_CONFIGURED    雖然可以聯網,但當前不可用
            INTERNET_CONNECTION_OFFLINE     離線
            INTERNET_RAS_INSTALLED       RAS安裝

             Wininet.h頭文件中值定義:
            // Flags for InternetGetConnectedState and Ex
            #define INTERNET_CONNECTION_MODEM           0x01
            #define INTERNET_CONNECTION_LAN             0x02
            #define INTERNET_CONNECTION_PROXY           0x04
            #define INTERNET_CONNECTION_MODEM_BUSY      0x08  /* no longer used */
            #define INTERNET_RAS_INSTALLED              0x10
            #define INTERNET_CONNECTION_OFFLINE         0x20
            #define INTERNET_CONNECTION_CONFIGURED      0x40


            InternetGetConnectedState():對網絡狀況不能及時反應
            IsNetworkAlive():可以及時反應網絡連通情況,但是需要服務System Event Notification支持(系統默認自動啟動該服務)。使用該函數,需要安裝最新的SDK(如.net的)

            微軟文檔:
            http://www.microsoft.com/china/technet/security/topics/serversecurity/tcg/tcgch07n.mspx

            System Event Notification

            System Event Notification (SENS) 服務監視并跟蹤計算機事件(如 Windows 登錄網絡和電源事件)。它還將這些事件通知給 COM+ 事件系統 訂閱者。在 Windows XP 和 Windows Server 2003 上默認安裝并自動運行此服務。

            如果 System Event Notification 服務停止,COM+ Event System 服務的訂閱者將不會接收到事件通知,并且會發生以下問題:

            Win32 API IsNetworkAlive() 和 IsDestinationReachable() 將無法運行。這些 API 大多在便攜式計算機的移動應用程序中使用。

            ISens* 接口將無法使用。SENS 登錄/注銷通知將失敗。

            SyncMgr (mobsync.exe) 將無法正常運行。SyncMgr 依賴于連接信息,以及來自 SENS 的網絡連接/斷開、登錄/注銷通知。

            COM+ EventSystem 試圖向 SENS 通知某些事件時將失敗。

            Volume Shadow Copy 服務將不能正常加載,這將導致 Windows 備份 API 失敗。

            1. //  
            2. #include "stdafx.h"  
            3. #include "test.h"  
            4. #include <Wininet.h>  
            5. #include <Sensapi.h>  
            6.   
            7. #ifdef _DEBUG  
            8. #define new DEBUG_NEW  
            9. #undef THIS_FILE  
            10. static char THIS_FILE[] = __FILE__;  
            11. #endif  
            12.   
            13. /////////////////////////////////////////////////////////////////////////////  
            14. // The one and only application object  
            15.   
            16. CWinApp theApp;  
            17.   
            18. using namespace std;  
            19.   
            20. void Fun_InternetGetConnectedState()  
            21. {  
            22.     
            23. //#define INTERNET_CONNECTION_MODEM           1  
            24. //#define INTERNET_CONNECTION_LAN             2  
            25. //#define INTERNET_CONNECTION_PROXY           4  
            26. //#define INTERNET_CONNECTION_MODEM_BUSY      8  
            27.     
            28. DWORD   flags;//上網方式   
            29. BOOL   m_bOnline=TRUE;//是否在線    
            30.   
            31. m_bOnline=InternetGetConnectedState(&flags,0);     
            32. if(m_bOnline)//在線     
            33. {     
            34.    if ((flags & INTERNET_CONNECTION_MODEM) ==INTERNET_CONNECTION_MODEM)  
            35.    {  
            36.     cout<<"在線:撥號上網\n";  
            37.    }  
            38.    if ((flags & INTERNET_CONNECTION_LAN) ==INTERNET_CONNECTION_LAN)  
            39.    {  
            40.     cout<<"在線:通過局域網\n";  
            41.    }  
            42.    if ((flags & INTERNET_CONNECTION_PROXY) ==INTERNET_CONNECTION_PROXY)  
            43.    {  
            44.     cout<<"在線:代理\n";  
            45.    }  
            46.    if ((flags & INTERNET_CONNECTION_MODEM_BUSY) ==INTERNET_CONNECTION_MODEM_BUSY)  
            47.    {  
            48.     cout<<"MODEM被其他非INTERNET連接占用\n";  
            49.    }  
            50. }  
            51. else  
            52.    cout<<"不在線\n";  
            53. }  
            54.   
            55. void Fun_IsNetworkAlive()  
            56. {  
            57.     
            58. DWORD   flags;//上網方式   
            59. BOOL   m_bOnline=TRUE;//是否在線    
            60.   
            61. m_bOnline=IsNetworkAlive(&flags);     
            62. if(m_bOnline)//在線     
            63. {     
            64.    if ((flags & NETWORK_ALIVE_LAN) ==NETWORK_ALIVE_LAN)  
            65.    {  
            66.     cout<<"在線:NETWORK_ALIVE_LAN\n";  
            67.    }  
            68.    if ((flags & NETWORK_ALIVE_WAN) ==NETWORK_ALIVE_WAN)  
            69.    {  
            70.     cout<<"在線:NETWORK_ALIVE_WAN\n";  
            71.    }  
            72.    if ((flags & NETWORK_ALIVE_AOL) ==NETWORK_ALIVE_AOL)  
            73.    {  
            74.     cout<<"在線:NETWORK_ALIVE_AOL\n";  
            75.    }  
            76. }  
            77. else  
            78.    cout<<"不在線\n";  
            79. }  
            80.   
            81. int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])  
            82. {  
            83. int nRetCode = 0;  
            84.   
            85. // initialize MFC and print and error on failure  
            86. if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))  
            87. {  
            88.    // TODO: change error code to suit your needs  
            89.    cerr << _T("Fatal Error: MFC initialization failed") << endl;  
            90.    nRetCode = 1;  
            91. }  
            92. else  
            93. {  
            94.    // TODO: code your application's behavior here.  
            95. //   CString strHello;  
            96. //   strHello.LoadString(IDS_HELLO);  
            97. //   cout << (LPCTSTR)strHello << endl;  
            98.    int i=0;  
            99.    while (TRUE)  
            100.    {  
            101.     cout << "請選擇測試的方式:\n"  
            102.      << "1. InternetGetConnectedState\n"  
            103.      << "2. IsNetworkAlive"  
            104.      << endl;  
            105.     cin >> i;  
            106.     switch(i)   
            107.     {  
            108.     case 1:  
            109.      Fun_InternetGetConnectedState();  
            110.      break;  
            111.     case 2:  
            112.      Fun_IsNetworkAlive();  
            113.      break;  
            114.     default:  
            115.      cout << "錯誤!\n";  
            116.     }  
            117.     cout << endl;  
            118.    }  
            119. }  
            120.   
            121.   return nRetCode;  

             

            posted on 2010-12-02 09:07 wrh 閱讀(9491) 評論(0)  編輯 收藏 引用

            導航

            <2009年4月>
            2930311234
            567891011
            12131415161718
            19202122232425
            262728293012
            3456789

            統計

            常用鏈接

            留言簿(19)

            隨筆檔案

            文章檔案

            收藏夾

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            精品久久久久国产免费| 东京热TOKYO综合久久精品| Xx性欧美肥妇精品久久久久久| 国产精品内射久久久久欢欢| 亚洲国产天堂久久综合| 国产∨亚洲V天堂无码久久久| 日韩一区二区久久久久久| 久久夜色精品国产亚洲| 91久久香蕉国产熟女线看| 久久精品成人欧美大片| 久久青青草原亚洲av无码| 亚洲精品乱码久久久久久蜜桃图片| 久久亚洲综合色一区二区三区| 女人高潮久久久叫人喷水| 人人狠狠综合久久亚洲88| 一本一本久久aa综合精品| 久久亚洲电影| 亚洲狠狠综合久久| 99久久精品国产高清一区二区 | 曰曰摸天天摸人人看久久久| 国产香蕉久久精品综合网| 久久国产视频99电影| 国产成人久久激情91 | 久久婷婷五月综合色奶水99啪| 久久国产成人亚洲精品影院| 久久国产精品无码一区二区三区| 国产69精品久久久久观看软件| 久久青青草原精品国产不卡| 久久国产视屏| 岛国搬运www久久| 久久久WWW免费人成精品| 999久久久国产精品| 久久精品国产半推半就| 国产一久久香蕉国产线看观看| 久久久久亚洲AV无码永不| 日韩精品久久久肉伦网站| 亚洲AV乱码久久精品蜜桃| 久久久久久精品久久久久| 精品国产青草久久久久福利| 国产成人精品三上悠亚久久| 欧美一区二区三区久久综|