奉献一个自动获取外网ip的关联脚本---脚本的风采
:global checkrun:if ($checkrun=false) do={
{/system scheduler enable "check interface Wandpppoe running"}
{/system scheduler disable "check_wand"}
} else={
:global reWanDAdd
:global curWanDAdd
:global curgw
:set reWanDAdd address]
:set curWanDAdd ( . "/32")
:set curgw network]
:if ($reWanDAdd!=$curWanDAdd) do={
{/ip route set wandpppoe gate $curgw}
{/ip route set "benlang s_route" gate $curgw}
#{/system script run "ddns script"}
{/system script run "ddns_script2"}
{:set cport "T60021,T8899,T13050,U13050,T13005,U13005,T4709,U4709,T8000,U8001,U6501,T6500,T13001,T8821,T15190,U15190,U20715,U6654,T6644"
:set countportnumber [:len $cport]
:set i 0
:while ($i<$countportnumber) do={{:set ccport [:pick $cport $i]}
{/ip firewall nat set $ccport dst-address=$reWanDAdd}
{:set i ($i+1)}
}}
}
}
==========================================================================================
:global aaa
:set aaa
:if ($aaa=false) do={:beep length=100ms frequency=2080} else={
{/system scheduler enable "check interface check_wand"}
{/system scheduler disable "check interface Wandpppoe running"}
{:set f "262,247,220,196,165,147,165,195,165,20000,262,247,247,220,196,165,165,165,220,196";:set d "500ms,500ms,250ms,500ms,750ms,500ms,500ms,500ms,1500ms,1000ms,500ms,250ms,250ms,500ms,250ms,750ms,500ms,250ms,1750ms,1500ms";:set i 0 ; :while ($i<20) do={:beep freq=([:pick $f $i ($i+1)]*2) len=[:pick $d $i ($i+1)];:delay [:pick $d $i ($i+1)];:set i ($i+1)}}
}
===================================================================================================
上面是两个脚本,我自己的定的是每30秒执行一次。本人脑袋最近有点僵硬,这两个脚本写了足足一个小时,累啊~~~希望给大家减少点脑力劳动,呵呵
[ 本帖最后由 cracks 于 2007-11-4 12:06 编辑 ] 呵呵...看花眼 其实这两个脚本可以合成一个脚本的,但我自己看着都乱,更不要说给大家看了,所以就分开了~呵呵 一头雾水 :global Interface_Vlaue "自己的端口名称"
:global checkrun
:if ($checkrun=false) do={
{:beep length=100ms frequency=2080}
} else={
:global reWanDAdd address]
:global curWanDAdd ( . "/32")
:global curgw network]
:if ($reWanDAdd!=$curWanDAdd) do={
{/ip route set $Interface_Vlaue gate $curgw}
{/ip route set "benlang s_route" gate $curgw}
#{/system script run "ddns script"}
{/system script run "ddns_script2"}
{:set cport "T60021,T8899,T13050,U13050,T13005,U13005,T4709,U4709,T8000,U8001,U6501,T6500,T13001,T8821,T15190,U15190,U20715,U6654,T6644"
:set countportnumber [:len $cport]
:set i 0
:while ($i<$countportnumber) do={{:set ccport [:pick $cport $i]}
{/ip firewall nat set $ccport dst-address=$reWanDAdd}
{:set i ($i+1)}
}}}
}
====================================================================
这是一个脚本的,去掉端口成功后的音乐提示,呵呵。这个更容易让大家去用! 我加注释吧,希望大家能多看懂一些
[ 本帖最后由 yftg 于 2007-9-5 19:06 编辑 ] 咖啡色:定义自己动态获取ip地址的端口名称 检查端口活动情况,如果端口没有处于非在线状态那么就发出一声2080hz100ms的警告声。
绿色:端口处于在线状态执行获取端口地址,从nat池中抽取一个nat值对比,如果当前端口地址和nat池中的地址不一致,那么执行红色,黑色,蓝色代码。
红色:更新路由表
黑色:执行DDNS更新脚本
蓝色:更新nat池中所需更新的地址。比如你的BT映射端口,或者ftp之类的端口。(备注:这些标记都是要用Comment在nat里事先标注的) 晕,好像没有人顶哦~这么好的东西~~~唉! 说句实话,确实太冗余了。 冗余,呵呵,老兄还能帮忙指出哪边有冗余的地方,我再改改..呵呵 不是有CHANGEIP.COM吗 嗯,是有的,在脚本里面,这个只是在获取新的ip后调用脚本更新ddns 用的就是changeip的还是蛮好用的。 想借问声在那里加呢?~请甘多位大佬指教下!!THANK YOU@ :) 冗余的口水风波!!
页:
[1]