使用ROS与简单web服务器实现弹出广告 类似于电信(push业务)

[复制链接]

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册用户

x
  在我们上网时,特别是使用ADSL上网时,你访问任何页面会弹出广告页面,电信运营上使用BRAS设备实现。现在介绍以下使用routeros如何实现。如果有哪位朋友有例如在自己的单位或内网中弹出页面下发通知等,可以一起琢磨琢磨。本人对routeros不是很熟悉,希望得到大家的完善。
  思路:首先你内网中所有用户通过你的routeros上网,当首次访问网页的所有数据包通过你routeros时,我们包数据包重新定向到你web服务器,并且把目标地址转换成你web服务器的地址。此时访问任何网站的数据相当于访问你的web服务器,你在web服务器的网页上你弹出你的通知,然后把页面重定向到他刚开始要访问的页面。

  实施:routeros上
ip firewall mangle addchain=postrouting protocol=tcp   dst-port=80action=add-src-to-address-list   address-list=src1address-list-timeout=2m
命令解释:我们首先建立一条mangle,让访问HTTP的数据把源地址加在src1这个列表中,address-list-timeout意思是源地址存在与src1列表里的时间。
ipfirewall nat add chain=dstnat protocol=tcp dst-port=80   action=dst-natto-addresses=192.168.100.69 to-ports=80 src-address-list=!src1
命令解释:然后建立一条目标地址转换,把访问页面的数据的目标地址转换成你服务器的地址这里服务器的地址为192.168.100.69,src-address-list=!src1的意思为,只有对源地址没有在src1列表中的数据进行转换,意思也就是说,当你的内网机器再次访问网页时不再弹出页面。
两步就可以,当然前提是之前你内网机器能正常上网,且你web服务器能访问你内网。
至于web服务器及web页面怎么写,可以问问搞ASP的。我这里有一简单的。







<%Function GetUrl()   
   On Error Resume Next   
   Dim strTemp   
   If LCase(Request.ServerVariables("HTTPS"))="off" Then   
   strTemp = "h-t-t-p去掉-://"   
   Else   
   strTemp = "h-t-t-p去掉-://"   
   End If   
   strTemp = strTemp & Request.ServerVariables("HTTP_HOST")   
If Request.ServerVariables("SERVER_PORT") <> 80 Then strTemp =strTemp & ":" & Request.ServerVariables("SERVER_PORT")
   strTemp = strTemp & Request.ServerVariables("URL")   
   If Trim(Request.QueryString) <> "" Then strTemp = strTemp & "?" & Trim(Request.QueryString)
   GetUrl = strTemp   
   End Function   %>


尊敬的涉外花园用户:
  


您好!
  


卖盒饭啦,电话1234567。

  


不要使用电驴、BT等工具下载。谢谢!浏览器将在5秒后跳转到您要访问的页面。



我的页面没有弹出,只有转向。

回复

举报 使用道具

全部回帖
暂无回帖,快来参与回复吧
您需要登录后才可以回帖 登录 | 注册用户
快速回复 返回顶部 返回列表