失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 用php写wifidog的认证服务器

用php写wifidog的认证服务器

时间:2020-11-18 01:23:02

相关推荐

用php写wifidog的认证服务器

后端开发|php教程

用php写wifidog的认证服务器

后端开发-php教程

路由器上wifidog的设置

himall 2.4完整源码,手动分区安装Ubuntu,tomcat 教程百度云,屋里爬虫很多,php 100简单算法题,seo数据提取lzw

主要设置鉴权服务器主机名(域名或ip都可以)和加粗鉴权服务器路径

云购源码去除短信验证,vscode前端常用插件翻译,ubuntu极点五笔,tomcat 日志管理,sqlite 降序,网页设计的备案号,dedecms数据库密码,服务器香港,wordpress 论坛插件,wau前端框架,搜图爬虫,php获取表单数据,海尔seo,流媒体springboot,灵动标签 当前栏目下子栏目,网站首页模版,易语言代理ip访问网页,bootstrap网页模板下载,pigcms后台密码,个人页面jsp代码,宾馆客房管理系统源代码,php考试程序代码lzw

路由器会请求以下四个地址:

虚拟币交易网站源码,ubuntu完全卸载gcc,爬虫耗流量吗,1199.00 php,seo中taglzw

所以我们需要每个请求建立一个文件夹下一个index.php

预备知识

客户端首次连接wifi,浏览器请求将被重定向到login并携带参数

(版本的wifidog参数多了mac)

而login/index.php需要做的就是验证通过后再重定向到网关:

之后wifidog会启动一个线程周期性报告用户状态:

/auth/index.php则需要返回是否让该用户继续上网,回复格式:Auth:状态码(0:拒绝, 1:验证通过)

验证成功后,路由器将请求/portal/?gw_id=%s

在/portal/index.php就可以写重定向到第一次请求的url参数或者重定向到自定义网址了

/ping/index.php的作用就是告诉路由器认证服务器还没有崩

/gw_message/index.php作用是当认证过程出现错误的时候,想用户显示错误信息

开工

我们将完成用户用账号密码方式认证

1.首先是重定向,在首次登陆时,用户访问的url会被重定向到如下的地址:

/login/index.php

query("set names utf8\"); $result = $db->query("SELECT * FROM user WHERE username={$username} AND password={$password}\"); if($result && $result->num_rows != 0){ //数据库验证成功 $token = \; $pattern="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLOMNOPQRSTUVWXYZ"; for($i=0;$iquery($sql); $db->close(); //登陆成功,跳转到路由网管指定的页面. $url = "http://{$parseUrl[gw_address]}:{$parseUrl[gw_port]}/wifidog/auth?token={$token}"; header("Location: ".$url); }else{ //认证失败 //直接重定向本页 请求变成get $url=http://.$_SERVER[SERVER_NAME].$_SERVER["REQUEST_URI"]; header("Location: ".$url); }}else{ //get请求 //一个简单的表单页面 $html = <<< EODportal loginusername: password:EOD; echo $html;}

2.用户认证协议:

/auth/?stage=%s&ip=%s&mac=%s&token=%s&incoming=%s&outgoing=%s

参数解释:

stage: 认证阶段,就logoin和counters两种

token: login页面下发的token

incoming: 下载流量

outgoing: 上传流量

/auth/index.php

query("set names utf8\");$token = $parseUrl[ oken];$sql = "SELECT * FROM user WHERE token={$token}\";$result = $db->query($sql);if($result && $result->num_rows != 0){ //token匹配,验证通过 echo "Auth:1";}else{ echo "Auth:0";}

3.Ping协议

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

wifidog会向认证服务器发送一些信息,来报告wifidog现在的情况,这些信息是通过Http协议发送的,如上的链接所示,参数大概如字面意思,没仔细研究过,而作为认证服务器,auth_server应回应一个”Pong”。

主要作用是路由确认认证服务器仍然存活,没有死机,另外一个功能是认证服务器可以收集路由的负载等的信息。路由器会定时访问这个脚本,脚本必须回复Pong,否则将认为认证服务器失效而出错。

/ping/index.php

4.认证成功后的跳转

portal/?gw_id=%s

在认证成功后,wifidog会将用户重定向至该页面。

/portal/index.php

<?php//认证前用户访问任意url,然后被重定向登录页面,session记录的是这个“任意url”.$url = $_SESSION["url"];//如果login参数url保存到session中//跳转到登陆前页面.header("Location: ".$url);

5.若验证失败,则会根据失败原因跳转至如下页面

gw_message.php?message=denied

gw_message.php?message=activate

gw_message.php?message=failed_validation

/gw_message.php

如果觉得《用php写wifidog的认证服务器》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。