WifiDog

无线热点认证解决方案
授权协议 GPLv2
开发语言 C/C++ SHELL
所属分类 管理和监控、 无线网络工具
软件类型 开源软件
地区 不详
投 递 者 陈斌蔚
操作系统 Linux
开源组织
适用人群 未知
 软件概览

WifiDog 是一款开源的用来实现无线认证的软件,可以集成到路由器或者网关中,对于连接到路由器或者网关的设备,使其先登录云端认证服务器,然后通过认证才能上网。比如在星巴克上网,浏览器会先弹出一个广告页面,我们输入手机号,获取验证码,然后就可以上网了。

网关心跳(Ping协议

Wifidog将ping协议做为心跳机制向认证服务器发送当前状态信息。这可以实现为认证服务器每个节点的状态生成中央日志。

Wifidog客户端在conf文件中进行设置,目的是通过http定期启动thread(ping_thread.c)向认证服务器发送状态信息。信息格式如下:

http://auth_sever/ping/?    
gw_id=%s
sys_uptime=%lu    
sys_memfree=%u    
sys_load=%.2f    
wifidog_uptime=%lu

通过系统调用wifidog客户端收集的数据

Headers
HTTP/1.0\r\n" 
"User-Agent: WiFiDog %s\r\n" 
"Host: %s\r\n" 
"\r\n",

一个标准的HTTP需求应该是:

GET /ping/?gw_id=001217DA42D2&sys_uptime=742725&sys_memfree=2604&sys_load=0.03&wifidog_uptime=3861 HTTP/1.0
User-Agent: WiFiDog 1.1.3_beta6
Host: wifidog.pro

认证服务器认证协议

这个页面描述了当用户已经被认证并允许访问互联网时,为了认证用户和进程,wifidog网关和认证服务器之间的信息传送。

Wifidog客户端将定期的启动一个thread来报告每个用户的连接状况。目前它被用来报告每个用户输入/输出计数器,以显示用户依然在现,并允许认证服务器将不再连接的用户断开。
以下是发给每个在线用户的信息

auth_server:/auth/index.php?
stage=
ip=
mac=
token=
incoming=
outgoing=

注意:stage=计数器/登录,取决于是否是新客户端
即使输入输出变量会在所有信息中出现,但他们只对处于counter阶段的信息有效。其它情况下输入输出经常设置为0。
在做回复时,认证服务器会以有效身份或新用户信息,或者认证服务器错误提示形式进行回复。
回复格式如下:
Auth:

新用户状态为:

0 - AUTH_DENIED - User firewall users are deleted and the user removed.
6 - AUTH_VALIDATION_FAILED - User email validation timeout has occured and user/firewall is deleted
1 - AUTH_ALLOWED - User was valid, add firewall rules if not present
5 - AUTH_VALIDATION - Permit user access to email to get validation email under default rules
-1 - AUTH_ERROR - An error occurred during the validation process

注意:认识服务器错误一般不会改变防火墙或用户状态

标准的URL为:

GET /auth/?stage=counters&ip=7.0.0.107&mac=00:40:05:5F:44:43&token=4f473ae3ddc5c1c2165f7a0973c57a98&incoming=6031353&outgoing=827770 HTTP/1.0
User-Agent: WiFiDog 1.1.3_beta6
Host: wifidog.pro

网关重定向浏览器

客户端浏览器在不同情况下会被重定向到其它页面:

初始化请求:

基于捕捉,客户端会被网关重定向到以下URL:

login/?gw_address=%s&gw_port=%d&gw_id=%s&url=%s 
例如:https://wifidog.pro/login/?gw_id=0016B6DA9AE0&gw_address=7.0.0.1&gw_port=2060

初始化请求之后

当请求被处理并且客户端已经被重定向到网关时

如果服务器回复AUTH_DENIED:注意你通常在标准认证服务器上看不到这样的提示。客户端将不会被重定向回网关。

gw_message.php?message=denied

如果服务器回复AUTH_VALIDATION:

gw_message.php?message=activate

如果服务器回复AUTH_ALLOWED:这是门户重定向:

portal/?gw_id=%s

如果服务器回复AUTH_VALIDATION_FAILED:注意你将不会在标准认证服务器看到此回复。客户端将不会重定向回网关。

gw_message.php?message=failed_validation

认证服务器重定向浏览器

基于成功登录,客户端将被重定向到网关。 http://" . $gw_address . ":" . $gw_port . "/wifidog/auth?token=" . $token

URL示例:http://192.168.1.1:2060/wifidog/auth?token=4f473ae3ddc5c1c2165f7a0973c57a98

  • Wifidog初分析 一、综述  wifidog是搭建无线热点认证系统的解决方案之一,他比nocat、nodog更适合互联网营销思路。常见的使用在openwrt系统上,它实现了路由器和认证服务器的数据交互,在路由器方(客户端)是用C 语言代码,通过wifidog程序和linux iptables防火墙实现接入用户的认证跳转和控制。在认证服务器方(服务端)是通过php(还有java版本的)实现用户的

  • 适用于已安装了OpenWrt固件的无线路由器 系统需求硬件 已安装了OpenWrt固件的无线路由器(典型的有Linksys WRT54G系列)软件 Wifidog你可以尝试执行以下命令安装Wifidog: opkg update # Optionalopkg install wifidog 将无线路由器接入Internet。设置并启用无线网络,即,使用无线路由器创建一个可用的Access Poin

  • 次我使用的是php来编写auth_server服务器,因为这样比较简单。 1.首先是login.php include './tool/MySQLHelper.php'; if (!empty($_GET["mac"])){ $result = selectMacByToken($_GET["mac"]); if (!empty($result)){ header("location: http:

  • 本帖最后由 liudf 于 2018-11-21 16:02 编辑 20181121 更新 继 apfree wifidog 替换 libhttpd 库为 libevent 库后,apfree wifidog 再次发版本。 本次版本的主要改动是扩展了原来的 wifidog REQUEST_TYPE_COUNTERS(简称V1)接口为REQUEST_TYPE_COUNTERS_V2(简称V2),v2

  • 【实例简介】 wifidog官网最新的,开源包,名称wifidog-20090925.trz.gz 【实例截图】 【核心代码】 wifidog-20090925.tar └── wifidog-20090925 ├── aclocal.m4 ├── AUTHORS ├── ChangeLog ├── config │   ├── config.guess │   ├── config.sub │ 

  • 先来说说什么是热点认证系统,如果你有用过酒店或者机场的wifi,当你连上网络后试图去浏览某些页面的时候就会被从定向到一个特定的页面要求你登录啊什 么的,是的,这就是热点登陆系统,可能也可以叫做wifi login portal。不过是什么,如果你理解了这概念,或者觉得有用,那么我们就来实际的搭建一下吧。 准备工作: 1、一个支持ddwrt的路由器,关于如何得到这个路由器以及那些是兼容的请上ddwr

  • wifidog 作为一款wifi认证插件,在网上资料对于源码的分析可以说数不胜数。 而编译方面的是,偏向于OpenWtr固件。对于我这种使用padavan固件来说,想要使用wifidog的话,就只能自己摸索动手丰衣足食,使用交叉编译来完成编译wifidog的任务了。 虽然网上有着H大编译好的版本,但是对于本人来说H大编译的固件插件太多了,所以一直使用的padavan都是自己编译的纯净版,啥插件也没

  • 软件介绍 WWAS 是wificoinwifidogauth server 的简写;wwas 是apfree wifidog(兼容原版wifidog协议)的云端认证服务器及认证设备管理维护平台,其与wwas-admin一起配合使用,为用户提供完整的apfree wifidog认证解决方案。 运行服务端git clone https://github.com/wificoin-project/wif

  • 正文 程序启动过程 初始化运行参数--config_init() 读取配置文件--config_read(config->configfile) 检查关键参数是否存在--config_validate()--网关接口--认证服务器IP 初始化用户链表--client_list_init() 注册信号--由wdctl线程发送信号,重启等待--init_signals()   进入主函数运行--mai

 相关资料
  • ApFree WiFiDog ApFree WiFiDog 在完全兼容原版 WiFiDog 的基础上,在功能、性能和稳定性方面做了大量工作、改进及优化,目前在坤腾固件中广泛使用,使用 ApFree WiFidog 的在线路由器数量达到1万多台且还在继续增长。 由于 ApFree WiFiDog 完全兼容原有的 WiFiDog 协议,在将原有 WiFiDog 迁移到 ApFree WiFiDog 可

  • 本文向大家介绍CKEditor无法验证的解决方案(js验证+jQuery Validate验证),包括了CKEditor无法验证的解决方案(js验证+jQuery Validate验证)的使用技巧和注意事项,需要的朋友参考一下 最近项目的前端使用了jQuery,表单的前端验证用的是jQuery Validate,用起来很简单方便,一直都很满意的。 前段时间,根据需求为表单中的 textarea 类

  • 本文向大家介绍Java前端Layer.open.btn验证无效解决方法,包括了Java前端Layer.open.btn验证无效解决方法的使用技巧和注意事项,需要的朋友参考一下 今天遇到了一个很可笑的问题,在.Layer弹窗open中设置了多个按钮,只有yes按钮有效,btn2点击后直接关闭弹窗,排查了2个小时后终于解决,就是btn2要return false! 以上方法大家可以测试下 ,感谢你的阅

  • 本文向大家介绍Laravel实现用户多字段认证的解决方法,包括了Laravel实现用户多字段认证的解决方法的使用技巧和注意事项,需要的朋友参考一下 前言 本文主要给大家介绍了关于Laravel用户多字段认证的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 解决方案: 登录字段不超过两个的(简单的解决方案) 登录字段大于或等于三个的(相对复杂一些) 登录字段不超过两个的

  • 百度统计于2016年秋开放无埋点技术内测,经过一年多的测试与研发后 ,于2017年6月正式发布『可视化圈选1.0』版本,并得到了广大开发者的认可。随后统计团队将更多研发人力投入到了无埋点技术的突破及应用功能拓展上,并逐步形成了一套基本无埋点技术的更加智能、高效、专业的全链路数据解决方案。 该方案围绕开发者的数据全链接业务流程,从数据采集、数据分析到数据应用的各个环节切入,帮助企业真正实现数据驱动。

  • 浏览AssertJ的API时,我似乎没有发现任何涉及Mockito行为的内容。验证现在我的断言都使用AssertJ fluent API,还有Mockito。验证哪一种是破坏断言流的。 有没有类似的方法来验证我错过的AssertJ中的方法没有被调用、只被调用一次等?