广告路由器开发(二)实践

上篇文章中分析了wifidog下authpuppy之间的数据流这篇文章中我就介绍一下如何书写一个简单的广告路由器

经过以上分析不难看出 实现一个广告路由器还是非常简单的

由于我本人对symfony框架不感冒 故以下示例代码使用了phalcon框架进行书写(只是演示用而已)

<?php

namespace controllers;

class InterfaceController extends \Phalcon\Mvc\Controller
{

	public function initialize( )
	{

	}

	public function indexAction( )
	{
	}

	public function loginAction( )
	{
		if( $this->request->isGet() && null == $this->request->getQuery( 'advs' ) )
		{
			$strDebug = var_export( $_SERVER, true );

			$this->view->setVar( 'iRefreshTime', 10 ); //广告时间10秒
			$this->view->setVar( 'url', $this->request->getServer( 'REQUEST_URI' ) . '&advs=advs' );

			$this->view->pick( 'interface/advs' );//这里展示广告
		}
		else
		{
			$this->view->disable();

			$strToken = sha1( rand() . time() );
			$this->persistent->set( 'redirectUrl', $this->request->getQuery( 'url' ));
			$this->response->redirect( 'http://' . $this->request->get( 'gw_address' ) . ':' . $this->request->get( 'gw_port' ) . '/wifidog/auth?token=' . $strToken, true );
		}

	}

	public function logoutAction( )
	{
		echo 'Auth:0';
	}

	public function portalAction( )
	{//广告过后在此函数内进行跳转
		$this->view->disable();
		if( null != $strUrl = $this->persistent->get( 'redirectUrl' ) )
		{
			$this->response->redirect( $strUrl, true );
		}
		else
		{
			$this->response->redirect( 'http://blog.csdn.net/qzfzz', true );
		}
	}

	public function pingAction( )
	{
		echo 'Pong';
	}

	public function msgAction( )
	{
	}

	public function authAction( )
	{
		echo 'Auth: 1';
	}

}

以下为视图

<!--advs.phtml-->
<!doctype html
<html>
<head>
<meta http-equiv="refresh" content="<?php echo $iRefreshTime;?>;url=<?php echo $url;?>"/>
<title>Login</title>
</head>
<body>
<p>这里可以展示广告等信息</p>
</body>
</html>

经过以上的开发一个简单的广告路由器即完成了

时间: 2024-10-09 16:25:43

广告路由器开发(二)实践的相关文章

广告路由器开发(一)数据流

最近无事时对广告路由器进行了一个分析 常用的广告路由器一般是通过普通路由器刷openwrt或是ddwrt等固件后安装wifidog组件做的,我们这里分析的即是wifidog加authpuppy 以下数据为截取自authpuppy和wifidog的交互 1.用户请求页面http://www.gov.cn/guowuyuan/2014-09/23/content_2755108.htm ---------------------------------------------------------

蓝鸥Unity开发基础—— 实践课程源代码二

蓝鸥Unity开发基础-- 实践课程源代码二 using System; namespace MyFirstGame{    class MainClass    {        public static void Main (string[] args)        {            //游戏即将启动时做一些操作            const int mapW=46;//地图宽度            const int mapH = 16;//地图高度 //定义常量    

微信公众平台开发最佳实践(第2版)

<微信公众平台开发最佳实践 第2版>微信公众平台开发经典之作全新改版,精心挑选最经典的商业项目开发,成千上万人次微信公众平台开发者从中受益 前言 出版说明 自从方倍工作室在博客园推出微信公众平台开发系列教程后,受到广大微信开发人员及爱好者的热情关注,相关文章的日访问量高达2万人次,而<微信公众平台开发入门教程>的阅读量超过50万,博客访问量总计超过500万,成为微信公众平台开发更新最快,传播最广.受众最多.资料最全的博客,很多博文被许多有影响力的网站转载,并被各大搜索引擎收录且排名

王家林的云计算分布式大数据Hadoop企业级开发动手实践

一:课程简介: Hadoop是云计算分布式大数据的事实标准软件框架,Hadoop中的架构实现是整个云计算产业技术的基础,作为与Google三大核心技术DFS.MapReduce.BigTable相对的HDFS.MapReduce.和HBase也是整个Hadoop生态系统的核心的技术,本课程致力于帮您掌握这三大技术的同时掌握云计算的数据仓库挖掘技术Hive,助您在云计算技术时代自由翱翔. 二:课程特色 1,      深入浅出中动手实作: 2,      掌握Hadoop三大核心:HDFS.Map

平安科技移动开发二队技术周报(第三期)

平安科技移动开发二队技术周报(第三期) 业界新闻 1)关于AFNetworking 安全bug的回复 AFNetworking代码维护者对文章 utm_source=tuicool">流行iOS网络通信库AFNetworking曝SSL漏洞 中存在的不对的误导性描写叙述的回应. 2)跨平台移动端开发框架NativeScript 公布正式版本号 NativeScript就是一款由Telerik公司提出的跨平台原生移动应用的开发框架.该项目的目的是利用单一代码库构建面向多平台的原生移动应用程序

移动端WEB前端开发最佳实践

移动端WEB前端开发最佳实践 Safari,Android Browser,Chrome都是以WebKit为核心的 移动设备和PC之间的页面现实存在差异(Safari中定义了viewport) 在移动设备和桌面端WEB前端开发中,事件绑定存在差异(移动触点) 页面控件设计存差异(点触不灵敏,虚拟键盘弹出框) 移动设备的网络带宽普遍比PC慢,移动页面要设置更简洁 PC页面兼容移动设备 使用流式布局 借助CSS Media queries(媒体查询)技术 使用合适的图片显示兼容方案 保持页面简洁,不

Android企业级应用程序开发完整训练:精通Android商业级开发最佳实践的24堂课

从企业级商业实战的角度入手,24小时内通过23个动手实战案例,循序渐进的对Android商业级别的应用程序开发要点各个击破,依托于在多年的Android(6款完整的硬件产品和超过20款应用软件)开发和企业级培训经验(超过150期的次Android的企业内训和公开课),旨在在实务的基础之上帮助你完成任何复杂程序的高质量Android应用程序开发,让Android开发跟上想象的速度.最后,通过ActivityManagerService揭秘Android应用程序一切行为背后的核心根源,让你从此开发应

Hadoop MapReduce开发最佳实践(上篇)

body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;}

平安科技移动开发二队技术周报(第四期)

平安科技移动开发二队技术周报(第四期) 业界新闻 1)Java 9将于2016年正式公布 Oracle已经宣布了Java 9的时间表.其目标是在2016年9年正式公布该版本号.该时间表遵循Oracle每两年公布一个新的主版本号的计划,尽管与先前的版本号相比,眼下提出的最后期限可能存在一定的延期风险. 2)谷歌I/O 2015大会前瞻:Android M.Chromecast 2以及很多其它 谷歌I/O大会再有几天就将与广大关注者见面.这意味着我们又该对这一年一度且总能引发业界高度关注的技术事件进