zooyo 发表于 2009-3-13 14:19:20

一个奇怪问题的解决思路 附上脚本

本帖最后由 zooyo 于 2009-3-13 14:20 编辑

    今天有个网友加我QQ,遇到一个奇怪的问题,只要ADSL拨号获得的是112开头的IP,远程WINBOX就连接不上,但是获得221和222开头的IP就能远程连接,起初我以为是设置、默认路由等问题,连接进去后发现设置都正常,就是一条单线ADSL拨号,没什么复杂的东西,防火墙规则也没有特别设置,奇怪了,或者是当地ISP有什么特殊的限制吧,不钻牛角尖,运用强大的脚本功能即可解决问题。
    首先要获取拨号后的IP前3位,如果是小于221开头的IP,就禁止拨号,延迟数秒后再重新拨号,看能不能获得221和222开头的IP地址,如果是221-222开头的,那么就更新DDNS,在DDNS脚本中得加个判断,否则只要是221-222开头的IP脚本就会一直更新。
    下面是脚本,抛砖引玉,有了ROS强大的脚本功能,很多问题都可以得到解决。


:global oip [:pick address] 0 3]
:if ($oip < 221) do={
    /interface pppoe-client set pppoe-out1"] disable=yes
    :delay 3
    /interface pppoe-client set pppoe-out1"] disable=no
} else={
      :global nip [:pick address] 0 [:find address] "/"]]
      :if ($nip != [:resolve "XXX.ddns.ms"]) do={
            /tool dns-update name=XXX.ddns.ms address=$nip key-name=XXX key=XXX
      }
}

该脚本在v3.20下测试通过,设置每8秒自动运行一次。

话说回来,要是遇到上网高峰期221-222的IP池满了,刚好你启动ROS,运气不好可能等个十来分钟。

47771885 发表于 2009-3-13 14:27:37

呵呵呵 呵呵不错不错

learning 发表于 2009-3-13 14:27:49

顶一下

qwert1388 发表于 2009-3-13 16:55:21

确实是奇怪

kevin121 发表于 2009-3-13 21:56:54

上有政策,下有对策!

admini 发表于 2009-3-13 22:36:57

那天我问你的那个问题,也没有很好的办法,最后也是用脚本解决的

我推崇ROS,就是因为有强大的脚本功能

cracks 发表于 2009-3-13 22:49:21

做标记。。
页: [1]
查看完整版本: 一个奇怪问题的解决思路 附上脚本