你可以不知道原因,但是,我们不能停止努力。httplook抓取路由配置界面信息
因为实验室的项目要求,需要动态控制路由的配置信息,我们知道。路由选择需要购买的访问后,:http://192.168.1.1 路由配置页面。配置,不须要人手工操作。甚至定时任务配置的时候,就须要进一步研究对路由配置的相关操作了。
须要实现的目标是像一些商家提供的带web认证的Wifi服务,如飞机场的CMCC接入,你连接Wifi热点后还不能上网,他会自己主动跳转到web认证页面实施认证。通过之后才干实现上网。可是我们希望通过server主机自己主动更改加入web认证账户,比方像商户能够发放免费上网电子券,券上面有相应的账号。假设数量多的话,靠人工一个个加入配置是非常麻烦的。
假设能够电脑批量处理,那就是极其方便的。
以下依照实际方案过程和遇到的一些问题进行httplook抓取的过程描写叙述,希望对以后遇到这方面问题的有部分帮助。之前是有两套方案:
1、用wiwiz搭建web认证,并通过其Wiwiz Auth API进行接入的控制。參考资料例如以下:
可是、、、后来发现wiwiz貌似免费版的话提供的服务真的非常少!付费才干达到项目要的要求,于是把这个方法当做备选!
2、自带web认证的无线路由,调研后发现有自带web认证的无线路由,我选用的是磊科NR235W无线上网管理路由器。
顺便吐槽下,七月底在某东买的时候是¥219.00,这几天再看是¥129.00 (降价通知)。。。还好不是花自己的钱,不然亏死了。
(吐槽可忽略)
如今就进入重点部分,怎样在主机端借助某些接口自己主动完毕路由配置,以下找了非常久才找到比較好的方法:
教您用命令行轻松玩转宽带路由(上)。教您用命令行轻松玩转宽带路由(中)然后死活都找不到(下)的部分。
。。学着边弄。最后才在翻了非常多网页之后找到“高手论道 教您用命令行轻松玩转宽带路由 ”。命名能再统一规范点吗?并且在同一个站点不是连续的发文章,所以能找到最后一篇也算是幸运的。
一、curl工具:curl是一个使用URL语法来传送文件的工具,支持HTTP/HTTPS/FTP/ FTPS/DICT/TELNET/LDAP/FILE和GOPHER等协议,同一时候也具备比較高的安全性。也就是说我们能够通过curl命令实现对基于HTTP协议页面的互动。
那么仅仅要浏览器能够做到的操作,我们仅仅要用curl模拟就能够做到。同理,对于一些网页须要抢票刷页面的。也是能够利用curl命令进行控制的。可是如今刷完之后那些抢票系统总是会弹出须要手动输入随机验证码的。也是作为一种手段来防止这样的作弊行为。下载后建议把curl工具当前的路径加入到系统的PATH路径下。那么自信命令行之后就不用进到curl相应的路径下才干运行。系统会自己主动去环境变量PATH路径下收你输入的这些命令行命令并运行。
二、监控工具:为了模拟浏览器的动作,那么我们须要知道浏览器訪问的地址以及相应的參数设置。
于是又两款监视工具对页面信息參数进行抓取。
当中遇到问题例如以下:
1、用httplook进行抓取时,仅仅要启动抓取,我的IE就会崩溃。而用搜狗浏览器却仅仅能抓到普通的页面、而抓不到路由配置页面的信息。
2、试用sniffer工具进行抓取。能够抓到。但是因为里面的相关信息复制不了,或者仅仅能复制其ASCII码,还要对其进行转码。于是我直接照着其參数手打出来。但是在用这些抓到的信息进行命令行配置时,电脑常常死机。
事实证明。电脑的非常多编码形式呈现出的可视化的东西不是看到的就是那样的。除了一些外形相似的字符,还有包含半角还是全角等小细节的出入。
所以这些信息的转移不妨直接复制粘贴。不然宕机了自己都不知道什么回事。
一開始我还以为是电脑硬件或者系统的问题,不放弃地不停尝试,然后就是不停的死机重新启动。差点重装系统。
最后抱着试一试的心态。把IE卸载了重装,然后用httplook重试。居然抓到了,真有一种柳暗花明的感觉。
对于浏览器的非常多操作,用IE肯定是没错的。由于如今非常多浏览器并非使用IE内核的。非常多也仅仅是兼容而已。所以会出现这样或那样莫名的错误。并且非常多时候你明明依照别人说的操作,可往往会出现跟别人描写叙述的不一样的结果,那肯定就是有原因。每个小步骤都可能出现故障。
假设能够的话从头到尾分析一下都有哪些步骤,每个步骤都尝试下能做的试错方案。最后能解决当然是非常好的,假设尝试全然部能想到的。搜尽全部资料都不能解决。那仅仅能说是缘分了。。。可是在这个过程。仅仅要你想要完毕,就不能停止尝试!
!
!一停你就输了,当然有时候停一下过后再看,可能非常easy就解决,可是不能全然放弃!
那如今就要開始进入抓取信息的部分了,以在我使用的自带web认证的无线路由上进行过程介绍。
(一)、启动httplook:点击绿色箭头启动抓取,例如以下图:
(二)、浏览器操作:用IE打开路由配置页面并进行你想要的配置操作,我这里以要加入web认证账户为例,例如以下图:
加入成功后我们能够在web认证页面看到刚加入的账户:
(三)、httplook获取配置參数:我们这边按下绿色箭头右边第一个相邻的红色button停止抓取,如图我们能够看到httplook抓到的相关信息:
能够看到浏览器配置路由的时候是通过訪问用post方法訪问路由的“192.167.1.1//router/l7_web_auth_user_set .cgi”配置文件,并将例如以下參数post过去“action=0&enable=1&user=0&pass=0&name=&policy_group_id=&charge_mode=0&adv_type=0&auth_user_bind_mac_mode=0&auth_user_bind_mac=&count=1&idle_cut=1&auth_user_static_ip=&id=&deal=add”,当中我们注意到“user=0&pass=0”就是我们刚才设置加入账户所填写的账户名与password。
(四)、curl命令行运行:完毕抓取后就须要用curl工具进行命令行的调用实现。
通过查询curl的用法。我们知道其訪问带username及password页面时的格式例如以下(就是我们进入路由配置页面时获取訪问权限时输入的username与password)格式为:curl -u 訪问页面username:password -d “參数” http页面地址。非常多訪问路由页面username与password默认是“admin”或“guest” 也能够自己改动的。本机username与password都是“guest”。使用例如以下:
curl -u guest:guest -d "action=0&enable=1&user=123&pass=123&name=&policy_group_id=&charge_mode=0&adv_type=0&auth_user_bind_mac_mode=0&auth_user_bind_mac=&count=1&idle_cut=1&auth_user_static_ip=&id=&deal=add" http://192.168.1.1/router/l7_web_auth_user_set.cgi
通过在命令行执行窗体中执行如上命令,能够看到例如以下信息,说明配置成功:
此时。再去看路由配置页面中web账户的列表。username与password都为“123”的账户被加入了进去。同理。假设想要对其它页面做相关动作,也能够採取上述相同的方法进行操作。至此。我们用curl命令运行路由配置的相关操作就完毕了。假设想要对无线Wifi热点进行控制还能够将命令写成“.bat”文件,然后设置系统中的定时任务功能来定时开启和关闭热点。假设须要像我上述的批量加入web认证账户,也能够使用其它语言对这个命令进行调用,仅仅要改变其相应的user和pass參数就能够了。
仅仅要浏览器能做到的,上述的办法就能做到。关键就是要“抓”。而在我们遇到问题在自己所能接触的知识库(包含自己的学识、周围的牛人资源、网上海量的资料牛人资源)中查询解决方式的时候。不能出现预定效果的时候,无论你知不知道原因,都要尝试地去在全部步骤中试错。甚至到最后你成功解决后还不知道原因,可是这个过程中你不能停止尝试。
而非常多人能顺利进行方案而不会跟你一样碰到这样或那样问题的时候,不要抱怨命运的不公,一件事的出现必然有他的原因。
也许你如今能够不知道原因。可是不能停止尝试的步伐。
由于一停。你就输了。至于结果,还要看你自身的各种能力、、、和“缘”!
版权声明:本文博主原创文章,博客,未经同意不得转载。