寒风落叶 发表于 2009-3-31 22:27:07

【原创】发一个配合之前类似PUSH功能的辅助脚本

本帖最后由 寒风落叶 于 2009-3-31 22:29 编辑

之前用过该功能的朋友一定有印象 ,用PPPOE,同一个用户不管拨号多少次,在指定时间内都只有首次会提示,然后设定的时间过了之后才会再次提示。

由于客户需要,写了个脚本,判断PPPOE拨号是否断开,如果断开,则删除address-list里面对应的IP,这样就可以实现用户每次拨号成功打开的第一个网页一定会转向成功。

脚本如下:【以下脚本在3.X测试成功(最近都在做3.X的ROS,呵呵~~),2.9的应该也没问题】

:foreach j in= do={
:global iplist
:global in 0
:foreach i in= do={
:global ip
:if ($ip=$iplist) do={:global in 1}
}
:if ($in=0) do={/ip firewall address-list remove $j}
}


将此脚本添加到计划任务 每10秒或更短执行一次即可

寒风落叶 发表于 2009-3-31 22:27:46

之前的转向脚本请搜索论坛帖子

zmtvia 发表于 2009-3-31 22:45:06

爱死你了 一小时之前我还在琢磨这事儿这回就看到这帖子了

zmtvia 发表于 2009-3-31 22:47:12

就是太耗CPU了

zmtvia 发表于 2009-3-31 22:53:09

本帖最后由 zmtvia 于 2009-3-31 23:13 编辑

楼主知道 为什么有时候 产生弹出的死循环吗?啪啪啪啪啪啪啪啪啪的一直闪弹出页面 和地址表无效一样 只要访问网页 就nat到内网服务器 往复死循环 一秒刷10次不成问题 90%用户正常 10%会出现这样的死循环

我用的这个规则

ip firewall mangle addchain=postrouting protocol=tcpdst-port=80action=add-src-to-address-listaddress-list=src1address-list-timeout=2m
命令解释:我们首先建立一条mangle,让访问HTTP的数据把源地址加在src1这个列表中,address-list-timeout意思是源地址存在与src1列表里的时间。
ipfirewall nat add chain=dstnat protocol=tcp dst-port=80action=dst-natto-addresses=192.168.100.69 to-ports=80 src-address-list=!src1
命令解释:然后建立一条目标地址转换,把访问页面的数据的目标地址转换成你服务器的地址这里服务器的地址为192.168.100.69,src-address-list=!src1的意思为,只有对源地址没有在src1列表中的数据进行转换,意思也就是说,当你的内网机器再次访问网页时不再弹出页面

寒风落叶 发表于 2009-4-1 10:05:26

呵呵没遇到过你说的情况

zmtvia 发表于 2009-4-1 10:07:54

愁死我了 原来做的拨号软件都被我扯下来了 这ROS的PUSH又有问题 不知道咋办了!这可咋弹网页啊!郁闷
我是多台ROS用一个RADIUS 所以用户的IP变化很大 不知道是ROS来不及添加到临时地址表还是咋总出那情况

xugr 发表于 2009-4-16 11:30:12

那个push是有问题,开始几天一直可以,后来用户打开所有的网站都是指定的网站,没办法就去掉了。
问了几个人,都有相同的情况。

小小鸟 发表于 2009-4-16 11:34:12

参考下....

qile 发表于 2011-3-8 02:24:48

我有时候登录页面也出现反复刷新的问题 从启动服务器就好啦
弄hotspot 的可以交流下 我qq85447070 验证 祁乐
pcc 多线负载加hotspot 后一直无法实现 有知道的吗,

hyh0826 发表于 2011-3-17 03:39:43

做个记号先。

fengshii 发表于 2011-4-25 23:38:03

很上心 啊

mains 发表于 2011-8-24 00:07:31

push可能成功率不高
页: [1]
查看完整版本: 【原创】发一个配合之前类似PUSH功能的辅助脚本