`
isiqi
  • 浏览: 16499689 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

VC实现控制路由器重新启动

阅读更多

[标题]:[原]VC实现重启路由器
[时间]:2009-5-28
[摘要]:使用VC发送一个HTTP请求给路由器,实现重启TP-LINK路由器功能。
[关键字]:TP-LINK,Basic Authorization,Base64,GET,HTTP
[环境]:TP-LINK TL-R402M SOHO 宽带路由器 , VC6 , HttpFox,Firebug
[作者]:Winty (wintys@gmail.com) http://www.blogjava.net/wintys

[正文]:
在浏览器里输入地址:192.168.1.1,它会弹出一个窗口, 要求输入密码。这是因为服务器要求HTTP Basic access authentication(http://en.wikipedia.org/wiki/Basic_access_authentication)。输入用户名和密码就可以进入路由器管理界面了,点击"重启路由器"按键即可重启路由器。如何编程实现向路由器发送重启的请求?

(1)、打开Windows命令行,将以下命令粘贴到命令行里(注意,最后有一个空行)。

telnet 192.168.1.1 80
GET / HTTP/1.1
Host:192.168.1.1

服务器会返回如下信息:

HTTP/1.1 401 N/A
Server: TP-LINK Router
Connection: close
WWW-Authenticate: Basic realm="TP-LINK SOHO Router R402M"
Content-Type: text/html

Web Server Error Report:<HR>
<H1>Server Error: 401 N/A</H1>
<P><HR><H2>Access denied</H2><P><P><HR><H1>/userRpm/index.htm</H1><P><HR>please
mail problems to support@tp-link.com.cn

路由器会返回状态码:401。这说明,本次访问是未经授权的,服务器拒绝了。同时,还可以看到:WWW-Authenticate: Basic realm="TP-LINK SOHO Router R402M",这说明路由器确实需要Basic验证。


(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");,即可实现重启路由器功能。

分享到:
评论

相关推荐

    ESET_VC52_AUTOID精锐id自动获取器(绝对能用!)

    2、修正了某些ID无法读取到有效期时和软件的“提前12天更新ID”的功能冲突导致软件每启动都会重新获取ID的BUG。 1.6.7.3更新:2009-03-05 1、出于对ESET的敬重,去除了对 ESET v4.x 版本自动添加排除和ID获取后让...

    ESET nod32 ID自动获取工具【ESET_VC52_AUTOID】 V1.7.2.1

    2、修正了某些ID无法读取到有效期时和软件的“提前12天更新ID”的功能冲突导致软件每启动都会重新获取ID的BUG。 1.6.7.3更新:2009-03-05 1、出于对ESET的敬重,去除了对 ESET v4.x 版本自动添加排除和ID获取后让...

    ESET nod32 ID自动获取工具【ESET_VC52_AUTOID】 V1.7.2.3

    2、修正了某些ID无法读取到有效期时和软件的“提前12天更新ID”的功能冲突导致软件每启动都会重新获取ID的BUG。 1.6.7.3更新:2009-03-05 1、出于对ESET的敬重,去除了对 ESET v4.x 版本自动添加排除和ID获取后让...

    CISCO 技术大集合

    路由器处于用户命令状态,这时用户可以看路由器的连接状态,访问其它网络和主机,但不能看到和更改路由器的设置内容。 2. router# 在router&gt;提示符下键入enable,路由器进入特权命令状态router#,这时不但可以执行...

    ESET nod32 ID自动获取工具【ESET_VC52_AUTOID】 V1.7.2.2

    2、修正了某些ID无法读取到有效期时和软件的“提前12天更新ID”的功能冲突导致软件每启动都会重新获取ID的BUG。 1.6.7.3更新:2009-03-05 1、出于对ESET的敬重,去除了对 ESET v4.x 版本自动添加排除和ID获取后让...

    EX交换机配置手册

    - **3.1.1 重新启动**:重启交换机以排除某些故障。 - **3.1.2 关闭**:关闭交换机。 - **3.2 配置备份和恢复** - **3.2.1 配置备份**:定期备份配置文件。 - **3.2.2 配置恢复**:在故障时恢复配置。 - **3.3 ...

    MAC 地址修改器

    3. **实时生效**:一般来说,修改后的MAC地址应该能立即应用到网络连接上,无需重启电脑或重新启动网络服务。 4. **安全无害**:虽然MAC地址修改可以用于合法目的,但也有潜在风险,比如被用来进行网络欺骗。因此,...

    DHCP工作过程

    DHCP(动态主机配置协议)是一种网络协议,...总之,DHCP协议通过四个主要步骤实现了网络设备的动态IP地址分配,简化了网络管理和维护。在实验环境中,正确配置DHCP服务器和中继代理是确保客户端能够获得IP地址的关键。

    通信工岗位作业指导书-有线测试题含答案.docx

    - 集中检修涉及VC-4、VC-12误码性能测试、设备、DDF/ODF架标签、配线检查等。 - 重点整修包括网络优化调整、设备地线检查等。 14. **OTN设备维护**: - 有人值守机房的OTN设备异常需及时与网管联系处理。 - ...

    JAVA上百实例源码以及开源项目源代码

    日历表格面板 [ConfigLine.java] 控制条类 [RoundBox.java] 限定选择控件 [MonthMaker.java] 月份表算法类 [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接...

    OptiX光传输故障排除案例集锦宝典.pdf

    - 未成环由于复用段协议启动使业务中断:复用段保护需要正确配置,确保协议仅在适当条件下启动。 - 双向复用段倒换后一个VC4的业务不通:检查VC4级别的通道配置,确保其能在倒换后正常工作。 2. **误码问题**: ...

    nod32 id获取器

    2、修正了某些ID无法读取到有效期时和软件的“提前12天更新ID”的功能冲突导致软件每启动都会重新获取ID的BUG。 1.6.7.3更新:2009-03-05 1、出于对ESET的敬重,去除了对 ESET v4.x 版本自动添加排除和ID获取后让...

Global site tag (gtag.js) - Google Analytics