找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7671|回复: 9

[脚本] 哪位大侠还没休息呀,谁能把这两个脚本合并一下。

[复制链接]
发表于 2011-12-17 23:10:37 | 显示全部楼层 |阅读模式

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

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

×
下边是把默认激活的外线接口IP自动填到ip fi nat comment="911"   dst-address里面


:global ddnsinterface [/ip route get [/ip route find dynamic=yes static=yes active=yes ] interface]
:global ip [ /ip address get [/ip address find dynamic=yes interface=$ddnsinterface ] address ]
:global newip [:pick $ip 0 [:find $ip "/"]]
:global oldip [/ip fi nat get [/ip fi nat find comment="911"] dst-address]
:if ($newip != $oldip) do={ :log info [/ip fi nat set [/ip firewall nat find comment="911"] dst-address=$newip]
:log info "Port nat web changed"
:log info $newip
}


下边是把默认激活的外线接口IP自动填到ip fi mangle comment="911"   dst-address里面

:global ddnsinterface [/ip route get [/ip route find dynamic=yes static=yes active=yes ] interface]
:global ip [ /ip address get [/ip address find dynamic=yes interface=$ddnsinterface ] address ]
:global newip [:pick $ip 0 [:find $ip "/"]]
:global oldip [/ip fi mangle get [/ip fi mangle find comment="911"] dst-address]
:if ($newip != $oldip) do={ :log info [/ip fi mangle set [/ip firewall mangle find comment="911"] dst-address=$newip]
:log info [/ip fi mangle set [/ip firewall mangle find comment="911"] dst-address=$newip]
:log info "Port nat web changed"
:log info $newip
}

哪位大侠能把上面的脚本给合并简化一下,先谢谢了。
routeros
 楼主| 发表于 2011-12-17 23:14:38 | 显示全部楼层
不怕大家笑话,没上过学,普到问题只好一点一点的求助大家了。
routeros
回复

使用道具 举报

发表于 2011-12-18 12:48:40 | 显示全部楼层
在3.30下第一行的interface可以用命令获取,但是这个命令,在5.X下行不通。
测试为5.7,直接: ":global ddnsinterface pppoe-out2"
:global ddnsinterface [/ip route get [/ip route find dynamic=yes static=yes active=yes ] interface]
:global ip [ /ip address get [/ip address find dynamic=yes interface=$ddnsinterface ] address ]
:global newip [:pick $ip 0 [:find $ip "/"]]
:global oldip [/ip fi nat get [/ip fi nat find comment="911"] dst-address]
:if ($newip != $oldip) do={
:log info [/ip fi nat set [/ip firewall nat find comment="911"] dst-address=$newip]
:log info [/ip fi mangle set [/ip firewall mangle find comment="911"] dst-address=$newip]
:log info "Port nat web changed"
:log info $newip
}
2011-12-18_125348.png
routeros
回复

使用道具 举报

 楼主| 发表于 2011-12-18 13:52:55 | 显示全部楼层
谢谢了,非常感谢。我测试一下,我的是3.30版的。
routeros
回复

使用道具 举报

 楼主| 发表于 2011-12-18 14:14:07 | 显示全部楼层
routeros
回复

使用道具 举报

 楼主| 发表于 2011-12-18 15:24:18 | 显示全部楼层
host2318 发表于 2011-12-18 12:48
在3.30下第一行的interface可以用命令获取,但是这个命令,在5.X下行不通。
测试为5.7,直接: ":global dd ...

合并后的脚本还有个小毛病,不知道为啥。
上面的合并脚本目的是让(1)为激活的外线IP   和(2)为IP firewall nat  dst address的 IP和(3)为ip firewall mangle dst address的IP三个地址保持一样。
现在问题是,(1)的IP和(2)的dst address 的IP一样,执行合并后的脚本,(3)的dst address 的IP的不会自动变为一样。用合并前的两个脚本单独执行,没这个问题。我的是ROS 3.30版本。
routeros
回复

使用道具 举报

发表于 2011-12-18 17:30:30 | 显示全部楼层
kzyfl 发表于 2011-12-18 15:24
合并后的脚本还有个小毛病,不知道为啥。
上面的合并脚本目的是让(1)为激活的外线IP   和(2)为IP fi ...

检查一下。我这里测试,两个都变了。
routeros
回复

使用道具 举报

 楼主| 发表于 2011-12-18 22:22:06 | 显示全部楼层
本帖最后由 kzyfl 于 2011-12-18 22:38 编辑
host2318 发表于 2011-12-18 17:30
检查一下。我这里测试,两个都变了。


朋友,你试试把3的IP  fn mangle dst address 随便改一下,其它1和2的IP不要动,运行脚本看看3会不会跟1和2的IP一样。把脚本拆开,不会有这种情况发生。
routeros
回复

使用道具 举报

 楼主| 发表于 2011-12-18 22:53:38 | 显示全部楼层
本帖最后由 kzyfl 于 2011-12-18 22:59 编辑

终于合并好了。
:global ddnsinterface [/ip route get [/ip route find dynamic=yes static=yes active=yes ] interface]
:global ip [ /ip address get [/ip address find dynamic=yes interface=$ddnsinterface ] address ]
:global newip [:pick $ip 0 [:find $ip "/"]]
:global oldip [/ip fi nat get [/ip fi nat find comment="911"] dst-address]
:log info [/ip fi nat set [/ip firewall nat find comment="911"] dst-address=$newip]
:global oldip [/ip fi mangle get [/ip fi mangle find comment="911"] dst-address]
:log info [/ip fi mangle set [/ip firewall mangle find comment="911"] dst-address=$newip]
:log info "Port nat web changed"
:log info $newip
}
routeros
回复

使用道具 举报

 楼主| 发表于 2011-12-18 23:04:45 | 显示全部楼层
本帖最后由 kzyfl 于 2011-12-19 01:03 编辑
host2318 发表于 2011-12-18 12:48
在3.30下第一行的interface可以用命令获取,但是这个命令,在5.X下行不通。
测试为5.7,直接: ":global dd ...


不知道咋回事,我把这句删了就正常了,:if ($newip != $oldip) do={
非常感谢楼上的host2318 朋友对我的支持,再次说声谢谢。
routeros
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-11-24 11:54 , Processed in 0.059809 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表