路由器的web管理界面,我们可以知道它是用http协议来进行管理的,linux下有很多终端的http协议工具,curl便是一个功能强大的工具,我们在这里就讨论一下如何使用curl来进行路由器管理.(curl的用法 请 man curl)
这里都是用到curl的基本功能,其中一个要注意的就是http用户验证,curl的用法是
curl -u user:pass url
下面是一个简单的脚本routermanager,所用的路由器的tplink 无线路由(其他路由器实现方式类似)
应为我只需要重启的功能,所以只实现了重启部分,其他的也类似实现,可能需要的就是过滤一下文本提取出自己需要的内容
 
#!/bin/sh
 USER=user
 PASS=pass
 CURL=curl
 HOST=http://192.168.1.1/

PROG=routermagager

reboot(){
ACTION="userRpm/SysRebootRpm.htm?Reboot=%D6%D8%C6%F4%C2%B7%D3%C9%C6%F7"
echo "Reboot Router now..."
${CURL} -u ${USER}:${PASS} ${HOST}${ACTION} > /dev/null
echo "DONE"
 }

help(){
echo "Usage ${PROG} {reboot|help}"
exit 3
 }

case $1 in
reboot)
reboot
;;
help)
help
;;
*)
help

esac

加入到cron中便可自动重启路由器了.
再完善其他功能的话,也能在远程的服务器上管理那里的路由器了,呵呵
好像路由器都有自带的终端管理工具?(不是做这方面的我真的不了解)希望懂的你,来教教我.

1、获得一张页面
使用命令:curl http://curl.haxx.se
要全部显示,请加参数 -i,要只显示头部,用参数 -I。
用 -v 命令看curl是怎样工作的,它向服务器发送的所有命令都会显示出来。
为了断点续传,可以使用-r参数来指定传输范围。
2、表单(Form)的获取
在WEB页面设计中,form是很重要的元素。Form通常用来收集并向网站提交信息。提交信息的方法有两种,GET方法和POST方法。先讨论GET方法,例如在页面中有这样一段:
<form method="GET" action="junk.cgi">
<input type=text name="birthyear">
<input type=submit name=press value="OK">
</form>
那么浏览器上会出现一个文本框和一个标为“OK”的按钮。按下这个按钮,表单就用GET方法向服务器提交文本框的数据。例如原始页面是在 www.hotmail.com/when/birth.html看到的,然后您在文本框中输入1905,然后按OK按钮,那么浏览器的URL现在应该是:“www.hotmail.com/when/junk.cgi?birthyear=1905&press=OK”
对于这种网页,curl可以直接处理,例如想获取上面的网页,只要输入:
curl "www.hotmail.com/when/junk.cgi?birthyear=1905&press=OK"
就可以了。
表单用来提交信息的第二种方法叫做POST方法,POST方法和GET方法的区别在于GET方法使用的时候,浏览器中会产生目标URL,而POST不会。类似GET,这里有一个网页:
<form method="POST" action="junk.cgi">
<input type=text name="birthyear">
<input type=submit name= press value=" OK">
</form>
浏览器上也会出现一个文本框和一个标为“OK”的按钮。按下这个按钮,表单用POST方法向服务器提交数据。这时的URL是看不到的,因此需要使用特殊的方法来抓取这个页面:
curl -d "birthyear=1905& press=OK" www.hotmail.com/when/junk.cgi
这个命令就可以做到。
 
curl -u admin:ghfn -d "OKBTN=确定" http://192.168.16.200:800/reboot.cgi
 
curl来测试网页时间
 
curl -o /dev/null -s -w %{time_connect}:%{time_starttransfer}:%{time_total}   http://www.canada.com 0.081:0.272:0.779

 输出通常是 HTML 代码,通过 -o 参数发送到 /dev/null。

-s 参数去掉所有状态信息。

-w 参数让 curl 写出表 1 列出的计时器的状态信息:

表 1. curl 使用的计时器
计时器描述
time_connect建立到服务器的 TCP 连接所用的时间
time_starttransfer在发出请求之后,Web 服务器返回数据的第一个字节所用的时间
time_total完成请求所用的时间

  这些计时器都相对于事务的起始时间,甚至要先于 Domain Name Service(DNS)查询。因此,在发出请求之后,Web 服务器处理请求并开始发回数据所用的时间是 0.272 - 0.081 = 0.191 秒。客户机从服务器下载数据所用的时间是 0.779 - 0.272 = 0.507 秒。

  通过观察 curl 数据及其随时间变化的趋势,可以很好地了解站点对用户的响应性

  当然,Web 站点不仅仅由页面组成。它还有图像、JavaScript 代码、CSS 和 cookie 要处理。curl 很适合了解单一元素的响应时间,但是有时候需要了解整个页面的装载速度。


转载自:http://blog.chinaunix.net/uid-8504518-id-2030815.html


参考资料

   http://hi.baidu.com/julingui/item/32bd18fe12b42aed1b111f04

http://www.blogjava.net/wintys/archive/2009/11/06/278962.html

Logo

更多推荐