[原创]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路由器)
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值