现在很多公司和企业都连接了自己的网络,特别是对于那些规模不大,员工不多的小型企业来说申请高容量的光纤带宽是没有必要的,所以使用ADSL成为众多领导的选择。整个公司只需要购买一个宽带路由器然后经过简单的配置即可完成公司的网络需求。
但是由于宽带路由器内部硬件非常简单,功能不发达,难以和企业级路由器或相比。因此在管理和限制员工上网方面功能欠缺,特别是在基于时间的管理方面就显得更加力不从心了。例如公司要求在上班时禁止某些员工的上网,而在休息时间则没有限制,由于大部分宽带路由器都没有基于时间的设置,所以唯一可行的就是在上班前由公司的网络管理员手动配置宽带路由器限制员工,在休息时再由他再次设置取消限制。
每天都要反复的登录和配置宽带路由器,每次配置都需要通过浏览器访问宽带路由器的管理界面,操作上非常不方便,而且也在一定程度上加重了网络管理员的工作。那么有没有一种方法能够让计算机实现自动连接宽带路由器并在上班前添加限制,在下班后释放限制呢?
上面那个自动化问题的解决关键就是实现命令行下对宽带路由器的设置,如果能通过一条条命令修改宽带路由器的参数的话,那么我们完全可以通过批处理文件+计划任务的办法来实现修改设置的自动化功能。
在讲解如何在命令行下控制宽带路由器之前我们需要先了解CURL这个工具。在“用命令行玩转宽带路由器(上)”中我们主要介绍CURL的使用方法和命令,只有熟悉了CURL的使用才能在“用命令行玩转宽带路由器(中,下)”中实现修改宽带路由器内部参数的自动化功能。
Curl像HTML一样是一种文本标记语言,它既是文本又是一种支持多重继承的面向对象编程语言。Curl不利的一面是:单一的形式破坏了由 HTML, CSS ,Javascript 带给我们的内容信息、形式和行为的分离。以上是对CURL的专业性解释,虽然在LINUX中CURL应用广泛,但是在windows操作系统中他的用武之地也逐渐被人们所关注。
如果仅仅从简单意义上说,那么curl是一个使用URL语法来传送文件的工具,支持HTTP/HTTPS/FTP/FTPS/DICT/TELNET/LDAP/FILE和GOPHER等协议,同时他具备比较高的安全性。也就是说我们可以通过curl命令实现对基于HTTP协议页面的互动。
首先我们下载CURL,然后将他解压缩到任意目录中,通过桌面“开始-运行-输入CMD”进入命令行模式,将当前目录修改为CURL的解压缩目录。(如图1)
CURL支持很多参数,我们可以通过curl -help来获得。只需要进到CURL目录中输入curl -help后回车。(如图2)
首先我们下载CURL,然后将他解压缩到任意目录中,通过桌面“开始-运行-输入CMD”进入命令行模式,将当前目录修改为CURL的解压缩目录。(如图1)
CURL支持很多参数,我们可以通过curl -help来获得。只需要进到CURL目录中输入curl -help后回车。(如图2)
我们这里只为各位读者介绍几个用得到的,掌握了这几个参数就可以在“用命令行玩转宽带路由器(下)”中实现修改宽带路由器内部参数的自动化功能了。
//将这个页面保存到softer.htm中,这样在命令行模式当前路径中就会出现一个新的名为softer.htm的文件,打开他对应的就是页面的信息。保存会花费一定的时间,当%列显示100说明全部完成。(如图4)
如果你要访问的页面需要输入用户名和密码来验证的话,同样可以通过CURL命令的-u参数解决。比如说我们要访问这个地址,这个地址的真实内容只有在你输入了正确的用户名和密码之后才能查看。(如图5)
这里假设我们的用户名是admin,密码是198029,要访问的页面地址是,那么完全可以通过CURL实现真实页面的输出和保存。
//访问192.168.1.1页面,当需要用户密码验证的时候输入用户名admin,密码是198029。然后将把通过验证后的页面信息显示在命令行模式中。(如图7)
也许有的时候我们访问某个页面需要通过代理服务器才行,没有设置代理服务器直接用curl -o保存的页面是错误的,那么完全可以通过-x参数来实现。
这里假设依然访问192.168.1.1但是需要使用代理服务器10.91.30.1:8080这个地址才行。CURL命令如下——
很多时候我们访问某个站点时都会出现错误信息,在这些错误信息中有一类是因为使用浏览器种类不符造成的。也就是说页面会读取访问者浏览器的 useragent信息,如果这个信息不在该页面授权浏览器范围内则无法访问。在通过手机笔记本访问无线网络时这种情况最为常见,我们用IE浏览器和 MAXTHON等工具都无法浏览,只能通过注册表修改useragent来迷惑对方,实现访问的目的。当然在命令行curl中也可以使用-A参数来实现。
服务器端常用的限制方法,就是检查http访问的referer。比如你先访问首页,再访问里面所指定的下载页,这第二次访问的referer 地址就是第一次访问成功后的页面地址。这样,服务器端只要发现对下载页面某次访问的referer地址不是首页的地址,就可以断定那是个盗链了。当发现是盗链后我们的访问就失败了。
//说明我们访问是通过在页面上点链接完成的。从而绕过了服务器端防盗链的限制,将该页面保存到softer.html文件中。
很多时候服务器页面都是基于CGI或PHP以及ASP等动态语言建立的,这样就加大了访问者和页面信息之间的互动性,也就是说不同的用户名和密码对应不同的内容。我们如何通过curl实现这种互动呢?
说白了我们访问宽带路由器的管理界面然后更改各种参数也是一种互动行为,只要我们找到修改的参数和互动的行为,用CURL模拟出这些操作,就可以实现在命令行下管理宽带路由器的目的,当然具体操作会在“用命令行玩转宽带路由器(下)”中为大家介绍。
如果你使用GET操作那么什么参数都不用加,直接把变量写在后面的URL地址中即可。例如curl 那么访问http: //192.168.1.1/login.cgi这个页面时就会将该页面对应的user和password这两个参数的信息依次设置为softer和 198029,从而实现登录功能。
而post模式的参数是-d。使用post模式后上面的GET操作命令就演化成curl -d user=softer&password=198029 相当于向这个站点发出一次登录请求。到底该用GET模式还是POST模式,就要看服务器端程序的设定了。一般来说我们两种模式都尝试下,都会有一个可以行得通。
CURL的参数还有很多,他的功能也很强大。当然本篇文章介绍的这些参数和指令只是为了帮助我们在“用命令行玩转宽带路由器(中,下)”文章中更好的理解CURL命令行的意思,只有掌握了本篇介绍的基本理论和准备知识才能让我们在命令行下玩宽带路由器更加自如。

