[原創]VC成功實現重啓路由器(完整源碼)

      這篇文章及源碼是在 http://blog.csdn.net/marklr/article/details/4389496 的基礎上寫的,但是內容又有些不樣。該實例在VC++6.0的控制檯下編譯通過,可以實現重啓路由器的功能,而且速度還是比較快的。不過要聲明的是:該實例佔用空間有些大(我加了一個圖標和一個版本信息就成了1.73MB),但也有可能因電腦而異。還有最關鍵的一點,360有時候報毒,但我敢肯定,本程序沒有惡意舉動(再說我又公佈了源碼,自己看看唄)。最後,說明:我自己寫文章的經驗不多,還望多多指教。文章版權沒有,隨便轉載,可以標明原鏈接,自願!
      (注:我們今天講的是控制檯程序,源碼裏用WinMain函數是爲了不顯示窗口
如果要用main函數的話請在頭文件後面加一句
#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )

      源碼及程序(包括資源)的下載地址:1.360雲盤  2.新浪微盤

主要代碼(完整的)
#include <afxinet.h>    //這個頭文件有許多MFC的定義,包括CString
#include <Winsock2.h>   //網絡編程的頭文件
#include <stdlib.h>     //雜類,裏面有很多不好分類的函數
#pragma comment(lib,"ws2_32.lib")    //網絡編程的庫
#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
int main(int argc,char *argv[])
{
    CString strHost = _T("192.168.1.1");     //IP
    CInternetSession session("Winty's Session");  //這個我也不知道
    CHttpFile* pHttpFile;
    CString strHeaders = _T("Authorization:Basic YWRtaW46YWRtaW4=");
                      //這是用戶名和密碼的base64格式,解密後是admin:admin
    int err=0;  //成功
    
    try     //try我不是很瞭解,自己百度搜索一下吧
    {
        INTERNET_PORT nPort; //端口
        CString strRelativeRequestURL;
        nPort = 80;
        strRelativeRequestURL = "/userRpm/SysRebootRpm.htm?Reboot=%D6%D8%C6%F4%C2%B7%D3%C9%C6%F7";
        
        CHttpConnection* pServer = session.GetHttpConnection(strHost, nPort);
        
        pHttpFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_GET,strRelativeRequestURL);
        pHttpFile->AddRequestHeaders(strHeaders);
        pHttpFile->SendRequest();

        DWORD dwStatusCode;
        BOOL bSuccess;
        bSuccess = pHttpFile->QueryInfoStatusCode( dwStatusCode );
        CString strMsg;
        strMsg.Format( "登錄到路由器失敗,錯誤信息:HttpStatusCode=%d" , dwStatusCode);
        if(!bSuccess || !(dwStatusCode>=200 && dwStatusCode<300))
{
            MessageBox(NULL,strMsg,"登錄路由器失敗",MB_OK);
        }
    }
    catch(CException *e)
    {
        pHttpFile = NULL;
        throw;
    }
    pHttpFile->Close();
    delete pHttpFile;

    session.Close();
    return 0;
}
打開VC++6.0,Ctrl+N,新建一個CPP文件,把代碼複製進去,編譯運行,路由器即可重啓。
(只能重啓IP爲192.168.1.1、端口爲80、用戶名和密碼均爲admin的路由器,如果你的路由器配置不樣,請修改。本系統只支持TP-LINK路由器)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章