因为实验室的项目要求,需要动态控制路由的配置信息,我们知道。路由选择需要购买的访问后,:http://192.168.1.1 路由配置页面。配置,不须要人手工操作。甚至定时任务配置的时候,就须要进一步研究对路由配置的相关操作了。

须要实现的目标是像一些商家提供的带web认证的Wifi服务,如飞机场的CMCC接入,你连接Wifi热点后还不能上网,他会自己主动跳转到web认证页面实施认证。通过之后才干实现上网。可是我们希望通过server主机自己主动更改加入web认证账户,比方像商户能够发放免费上网电子券,券上面有相应的账号。假设数量多的话,靠人工一个个加入配置是非常麻烦的。

假设能够电脑批量处理,那就是极其方便的。

以下依照实际方案过程和遇到的一些问题进行httplook抓取的过程描写叙述,希望对以后遇到这方面问题的有部分帮助。之前是有两套方案:

1、用wiwiz搭建web认证,并通过其Wiwiz Auth API进行接入的控制。參考资料例如以下:

成本低廉的宾馆无线Wifi网络覆盖+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认证账户为例,例如以下图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2F5Y2FpcWk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

加入成功后我们能够在web认证页面看到刚加入的账户:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2F5Y2FpcWk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

(三)、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參数就能够了。

仅仅要浏览器能做到的,上述的办法就能做到。关键就是要“抓”。而在我们遇到问题在自己所能接触的知识库(包含自己的学识、周围的牛人资源、网上海量的资料牛人资源)中查询解决方式的时候。不能出现预定效果的时候,无论你知不知道原因,都要尝试地去在全部步骤中试错。甚至到最后你成功解决后还不知道原因,可是这个过程中你不能停止尝试。

而非常多人能顺利进行方案而不会跟你一样碰到这样或那样问题的时候,不要抱怨命运的不公,一件事的出现必然有他的原因。

也许你如今能够不知道原因。可是不能停止尝试的步伐。

由于一停。你就输了。至于结果,还要看你自身的各种能力、、、和“缘”!

版权声明:本文博主原创文章,博客,未经同意不得转载。

你可以不知道原因,但是,我们不能停止努力。httplook抓取路由配置界面信息的更多相关文章

  1. Linux下chkconfig命令详解--(启动或停止)和查询系统服务的运行级信息

    chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息.谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接. 使用语法:chkconfig [--ad ...

  2. chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息

    chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息.谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接. 使用语法:chkconfig [--ad ...

  3. 多校联赛2 Problem2 Warm up 求桥的数目+缩点后的树的直径 当时被不知道原因的爆栈爆到无语了。。

    Warm up Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Total S ...

  4. TP5动态路由配置好了但是报错was not found on this server的原因以及解决方法

    问题:The requested URL /xxxx.html was not found on this server 原因:apache的重写未开启,开启重写后,问题解决, 方法如下: apach ...

  5. c# 关于抓取网页源码后中文显示乱码的原因分析和解决方法

    原因分析:首先,目前大多数网站为了提升网页浏览传输速率都会对网站内容在传输前进行压缩,最常用的是GZIP压缩解压解压算法,也是支持最广的一种. 因为网站传输时采用的是GZIP压缩传输,如果我们接受we ...

  6. 【Pod Terminating原因追踪系列之一】containerd中被漏掉的runc错误信息

    前一段时间发现有一些containerd集群出现了Pod卡在Terminating的问题,经过一系列的排查发现是containerd对底层异常处理的问题.最后虽然通过一个短小的PR修复了这个bug,但 ...

  7. ios crash的原因与抓取crash日志的方法

    首先我们经常会闪退的异常有哪些呢?crash的产生来源于两种问题:违反iOS策略被干掉,以及自身的代码bug. 1.IOS策略 1.1 低内存闪退 前面提到大多数crash日志都包含着执行线程的栈调用 ...

  8. 使用scrapy框架来进行抓取的原因

    在python爬虫中:使用requests + selenium就可以解决将近90%的爬虫需求,那么scrapy就是解决剩下10%的吗? 这个显然不是这样的,scrapy框架是为了让我们的爬虫更强大. ...

  9. 分享一个CQRS/ES架构中基于写文件的EventStore的设计思路

    最近打算用C#实现一个基于文件的EventStore. 什么是EventStore 关于什么是EventStore,如果还不清楚的朋友可以去了解下CQRS/Event Sourcing这种架构,我博客 ...

随机推荐

  1. 检验身份证的正确性(Golang版本)

    // CheckID_card project main.go package main /* * ai -> a1 , a2, a3, a4, a5, a6... a17 (a18 是校验码) ...

  2. Leetcode:minimum_depth_of_binary_tree解决问题的方法

    一.     称号 并寻求最深的二元相似.给定的二进制树.求其最小深度. 最小深度是沿从根节点,到叶节点最短的路径. 二.     分析 当我看到这个题目时.我直接将最深二叉树的代码略微改了下,把ma ...

  3. jQuery 代码的层定位滑动动画效果

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. TestNg显示器(一个)-----监听器,类型和配置使用---另外META-INF详细解释

    原创文章,版权所有所有.转载,归因:http://blog.csdn.net/wanghantong/article/details/40404939 TestNg提供了听众和拦截多种接口开发我们自己 ...

  5. cocos2d-x box2d Demo注解

    勤奋努力,持之以恒. 核心概念 Box2D 中有一些主要的对象,这里我们先做一个简要的定义,在随后的文档里会有更具体的描写叙述. 刚体(rigid body) 一块十分坚硬的物质,它上面的不论什么两点 ...

  6. JAVA学习笔记 -- 包资源文件jar包裹

    初学者GUI,使用Eclipse出口jar包裹,不能显示最小化的图标集(hello.png根文件下的项目文件夹文件).码如下面: import javax.swing.JFrame; import j ...

  7. Java实现 Base64、MD5、MAC、HMAC加密(转)

    开始对那些基本的加密还不怎么熟练,然后总结了些,写了一个测试:支持 Base64.MD5.MAC.HMAC加密,长话短说,我们都比较喜欢自己理解,看代码吧! 采用的输UTF-8的格式... packa ...

  8. 修饰模式(Decorator结构化)C#简单的例子

    修饰模式(Decorator结构化)C#简单的例子 播放器的基本功能是移动.执行等.BaseAbility 新增功能:1.伤害技能harmAbility:2.阻碍技能BaulkAbility:3.辅助 ...

  9. COC+RTS+MOR游戏开发 一(游戏特色分析,和实践)

    本场比赛的临时名称 游戏特色(-):COC风格 ,塔防养成类游戏.          一款史诗般的战斗策略游戏.玩家须要建立村庄,成千上万的网友训练玩家的军队和战斗. 游戏中玩家须要不断的提高军队的作 ...

  10. python字典构造函数dict(mapping)解析

    Python字典的构造函数有三个,dict().dict(**args).dict(mapping),当中第一个.第二个构造函数比較好理解也比較easy使用, 而dict(mapping)这个构造函数 ...