搭建自己的wifidog认证服务器

本人刚刚开始研究这个,看到有很多人在求自建认证服务器,心得如下,实现 wifidog 4 个接口: portal,login,auth,ping (还有一个get_gw_message.php 的接口,可不用实现)
简单来说,就是路由器会以GET方式请求 你的服务器(加入了白名单) 以下四个地址:
http://认证服务器/路径/login
http://认证服务器/路径/auth
http://认证服务器/路径/ping
http://认证服务器/路径/portal

以下以php为例子,实现
( 我是写了一个rewrite , 把所有请求转发到了 index.php?q=,当然,你也可以每个请求建立一个文件夹下一个 index.php)

具体代码如下:

$q = $_GET['q'] ;
$q = explode('/',$q) ;
$q = $q[0] ;
$a = '' ;
if(!empty($q[1])) $a = $q[1] ;


if($q == 'portal'){
        print 'portal' ;
}

if($q == 'login'){
        print 'login' ;
        $gw_port = $_GET['gw_port']  ;
        $gw_address = $_GET['gw_address']  ;
        //token 自己生成一个
        print '<br /><a href="http://'.$gw_address.':'.$gw_port.'/wifidog/auth?token=789">login</a>' ;
}

if($q == 'auth'){
        $token =  $_GET['token']  ;
        if($token == '789') print "Auth: 1"; 
        else print "Auth: 0"; 
}



if($q == 'ping') print 'Pong' ;

如果你想看一下,路由器到底请求了你些什么,可以看日志或者自己加个写入

$time = date('YmdHis') ;
file_put_contents(dirname(__FILE__) . '/get_'.$q.'_'.$time.'.txt',var_export($_GET,true)) ;

本文章由 http://www.wifidog.pro/2015/02/10/wifidog%E8%AE%A4%E8%AF%81%E6%9C%8D%E5%8A%A1%E5%99%A8-1.html 整理编辑,转载请注明出处

标签: wifidog认证 wifidog安装 wifidog原理 wifidog分析 wifidog配置 wifidog流程 wifidog服务器 wifidog-ddwrt wifidog openwrt