科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件VC实现重启路由器2

VC实现重启路由器2

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

VC实现重启路由器

作者:ddvip 来源:ddvip 2009年12月31日

关键字: 思科 路由器

  • 评论
  • 分享微博
  • 分享邮件

VC实现重启路由器2

 

 (2)、再使用Firebug和Httpfox分析出点击"重启路由器"时,浏览器向路由器发送的请求。发现,主要请求内容如下:

GET /userRpm/SysRebootRpm.htm?Reboot=%D6%D8%C6%F4%C2%B7%D3%C9%C6%F7 HTTP/1.1
Host:192.168.1.1
Authorization:Basic YWRtaW46YWRtaW4=

   其中,Authorization请求头的内容中,"Basic"表示"Basic authorization验证" ;"YWRtaW46YWRtaW4="是使用Base64编码后的用户名和密码,解密后是"admin:admin"。使用Base64编码有两个目的:a、使用户名和密码不能直接被肉眼识别;b、使传送的内容中无非法字符,即使用户名或密码中有不适于直接使用HTTP协议传送的字符,使用Base64编码后,就符合了协议要求。Base64能被轻易解密,所以不能依赖它来实现安全的访问控制。

   同样,也可以自己在命令行输入以下内容,实现以上的HTTP请求,从而实现重启路由器功能(最后有一个空行):

telnet 192.168.1.1 80
GET /userRpm/SysRebootRpm.htm?Reboot=%D6%D8%C6%F4%C2%B7%D3%C9%C6%F7 HTTP/1.1
Host:192.168.1.1
Authorization:Basic YWRtaW46YWRtaW4=

    (3)、用VC6发送GET请求:

void CUtil::RestartRouter(CString& strHost)
{
    CInternetSession session("Winty's Session");
    CHttpFile* pHttpFile;
    //路由器要求Basic Authorization:用户名:admin,密码:admin
    CString strHeaders = _T("Authorization:Basic YWRtaW46YWRtaW4="); // 请求头
    
    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)){
            AfxMessageBox(strMsg);
        }
    }
    catch(CException* e)
    {
        pHttpFile = NULL;
        throw;
    }
    pHttpFile->Close();
    delete pHttpFile;

    session.Close();
}

   调用函数:RestartRouter("192.168.1.1");,即可实现重启路由器功能。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章