- 浏览: 197248 次
- 性别:
- 来自: 芜湖
文章分类
- 全部博客 (139)
- 软件 (0)
- Pattern (6)
- CSDN导入 (19)
- Struts (3)
- [网站分类]1.网站首页原创 (27)
- [网站分类]6.转载区 (4)
- Hibernate (10)
- Error (8)
- [网站分类]2.Java新手区 (20)
- Java (8)
- [网站分类]4.其他技术区 (10)
- Web (1)
- C++ (2)
- Algorithm (4)
- Linux (2)
- Skill (1)
- Tech (2)
- Note (2)
- [网站分类]3.非技术区 (1)
- Database (1)
- Winty (7)
- [网站分类]1.网站首页原创Java技术区(对首页文章的要求: 原创、高质量、经过认真思考并精心写作。BlogJava管理团队会对首页的文章进行管理。) (0)
最新评论
-
haohao-xuexi02:
很不错哦。
O'Reilly cos上传组件的使用(1/3) - 上传文件 -
yoin528:
useUnicode=true&charact ...
[原]向MySQL数据库插入Blob数据的问题 -
xiaoqing20:
下载来看看!呵呵
[原]Struts2类型转换 -
xiaoqing20:
[原]Struts2类型转换
[标题]:[原]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命令行,将以下命令粘贴到命令行里(注意,最后有一个空行)。
GET / HTTP/1.1
Host:192.168.1.1
服务器会返回如下信息:
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分析出点击"重启路由器"时,浏览器向路由器发送的请求。发现,主要请求内容如下:
Host:192.168.1.1
Authorization:Basic YWRtaW46YWRtaW4=
其中,Authorization请求头的内容中,"Basic"表示"Basic authorization验证" ;"YWRtaW46YWRtaW4="是使用Base64编码后的用户名和密码,解密后是"admin:admin"。使用Base64编码有两个目的:a、使用户名和密码不能直接被肉眼识别;b、使传送的内容中无非法字符,即使用户名或密码中有不适于直接使用HTTP协议传送的字符,使用Base64编码后,就符合了协议要求。Base64能被轻易解密,所以不能依赖它来实现安全的访问控制。
同样,也可以自己在命令行输入以下内容,实现以上的HTTP请求,从而实现重启路由器功能(最后有一个空行):
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请求:
{
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");,即可实现重启路由器功能。
[参考资料]:
Basic access authentication :http://en.wikipedia.org/wiki/Basic_access_authentication
作者:Winty (wintys@gmail.com)
博客:http://www.blogjava.net/wintys
发表评论
-
[原]导出CodeHelp的数据
2009-03-16 17:05 805搬到blogjava总得发点原创的东西吧。 Code ... -
[原]使用Ant实现zip压缩解压功能
2009-03-19 13:17 1672[关键词]:ant,zip,unzip,Apache,压缩,解 ... -
[原]EL函数的使用
2009-04-03 21:29 1073[标题]:EL函数的使用 [时 ... -
[原]对Class.getMethod()的调用未经检查
2009-04-05 15:52 2319[标题]:对Class.getMethod()的调用未经检查 ... -
[原]JNI简单示例
2009-04-05 21:33 1004[标题]:JNI简单示例 [时 ... -
[原]简单工厂模式
2009-04-14 12:26 720[关键字]:java,设计模式,简单工厂,《java与模式》 ... -
[原]工厂模式
2009-04-14 12:32 693[关键字]:java,design pattern,设计模式, ... -
[原]抽象工厂模式
2009-04-14 19:25 719[关键字]:java,design pattern,设计模式, ... -
[原]方法返回值为数组的另一种表示方法
2009-04-25 22:28 936[时间]:2009-04-25 今天看到JDK的源代码 ... -
[原]SAX使用示例
2009-04-26 19:18 2018[标题]:[原]SAX使用示例 [时间]:2009-4-25 ... -
[原]责任链模式
2009-05-09 16:47 693[关键字]:java,design pattern,设计模式, ... -
[原]状态模式
2009-05-18 23:03 745[关键字]:java,design pattern,设计模式, ... -
[原]策略模式
2009-05-21 22:21 661[关键字]:java,design pattern,设计模式, ... -
[原]远程登录Windows Server 2003的当前会话
2009-06-01 11:19 2032[标题]:远程登录Windows Server 2003的当前 ... -
[原]Tomcat crossContext
2009-06-01 12:27 6021[标题]:Tomcat crossContext [时间]:2 ... -
[原]装饰模式1
2009-06-07 22:33 676[关键字]:java,design pattern,设计模式, ... -
[原]装饰模式3-Grep
2009-06-07 22:42 658[关键字]:java,design pattern,设计模式, ... -
[原]合成模式-透明的
2009-06-08 22:23 728[关键字]:java,design pattern,设计模式, ... -
[原]合成模式-安全的
2009-06-08 22:27 801[关键字]:java,design pattern,设计模式, ... -
[原]模板方法模式
2009-06-15 17:05 636[关键字]:java,design pattern,设计模式, ...
相关推荐
基于springboot的java毕业&课程设计
基于springboot的java毕业&课程设计
【优化覆盖】算术算法求解传感器覆盖优化问题【含Matlab源码 2436期】.zip
【优化覆盖】蜣螂算法DBO求解无线传感器WSN覆盖优化问题【含Matlab源码 3567期】.zip
FusionCompute修改VRM节点IP地址 该任务指导工程师对VRM节点的IP地址、主机的管理IP地址进行修改。 执行该任务时应注意: • 建议同时修改VRM和主机的管理IP。如果修改了VRM的IP,会导致本地PC与VRM的连接短暂中断。 • 修改前应已完成网络规划,并在FusionCompute中确认VRM节点运行正常,所有主机运行正常(无处于异常或维护状态的主机)。 • 如果跨网段修改IP地址时,则应注意在完成所有节点IP地址的修改后,在相应的汇聚交换机进行配置,保证修改后的主机IP地址、VRM节点及本地PC之间能进行正常通信。相关交换机配置命令,请参考交换机配置样例。 • 如果跨网段修改管理IP地址,同时涉及修改管理VLAN,请先修改管理平面VLAN,待修改完成,且各节点与VRM网络通信正常后,再进行修改VRM IP地址和主机IP地址的操作。
基于springboot的java毕业&课程设计
MySQL8.4.0 LTS(mysql-server_8.4.0-1ubuntu22.04_amd64.deb-bundle.tar)适用于Ubuntu 22.04 Linux (x86, 64-bit)
【优化参数】遗传算法求解管道调节阀参数整定优化问题(含压力、阀门高度)【含Matlab源码 4165期】.zip
课设毕设基于SSM的汉服文化平台网站 LW+PPT+源码可运行.zip
基于springboot的java毕业&课程设计
基于springboot的java毕业&课程设计
java毕业设计 基于springboot Vue前后端分离自习室预约系统源码+使用文档+全部资料(优秀项目).zip本资源中的源码都是经过本地编译过可运行的,评审分达到95分以上。资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 【备注】 1、该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。java毕业设计 基于springboot Vue前后端分离自习室预约系统源码+使用文档+全部资料(优秀项目).zipjava毕业设计 基于springboot Vue前后端分离自习室预约系统源码+使用文档+全部资料(优秀项目
最简单的 UDP-RTP 协议解析程序
人工智能换脸技术在近年来迅速发展,被广泛用于个人学习和娱乐目的。这项技术能够将一个人的脸部特征转移到另一个人的脸上,产生逼真的视觉效果。在学术界和工业界,AI换脸技术被用于电影特效、数字双胞胎生成和面部动画制作等领域。然而,对于普通用户而言,这项技术提供了一种有趣的方式来探索虚拟身份和玩转创意思维。 尽管AI换脸技术提供了令人惊叹的视觉效果,但也存在一些伦理和法律问题需要引起注意。特别是在隐私和虚假信息方面,滥用这项技术可能会导致潜在的风险和误解。因此,对于个人用户,使用AI换脸技术时需要保持理性和正确的态度,避免将其用于不当用途,包括欺骗、恶作剧或其他违法活动。 对于有需要的人群,希望他们能够理解AI换脸技术的局限性和使用范围。这项技术的目的在于推动科技发展和提升用户体验,但并非用于损害他人利益或伪造虚假信息。在个人学习和娱乐过程中,可以通过实践和研究更好地理解人工智能技术的潜力和局限性,促进技术的健康发展和应用。 总的来说,AI换脸技术作为一种前沿技术,为个人学习和娱乐提供了新颖且有趣的体验。然而,为了避免潜在风险和误解,用户应谨慎使用并遵循道德准则和法律规定。只有在合法、道
4.0 入住喷绘(转曲).cdr
基于springboot的java毕业&课程设计
【优化布局】免疫算法求解充电站最优布局【含Matlab源码 2539期】.zip
基于springboot的java毕业&课程设计
智慧藏文化博物馆建设方案PPT(79页)
基于springboot的java毕业&课程设计