找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2972|回复: 0

[脚本] 原创:求动态IP的ADSL网关的脚本

[复制链接]
发表于 2007-12-10 12:15:59 | 显示全部楼层 |阅读模式

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

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

×
原理:我用过电信和网通的动态IP的ADSL,自己也用ros做个PPPOE服务,发现网关都是远端的IP地址,即PPPOE服务器上的地址,当ADSL拨上的时候,会分配到两个IP地址,一个是本机的地址,一个是服务器上的地址

根据这一原理就可以得到网关的IP, 当然如果不是这种模式,则需要用另外的方法

A,知道ADSL名称的情况下求网关
#设置被检测的ADSL接口名称
:set ADSL-NAME "CNC-ADSL"
#-----
:set id [/ip route find interface=$ADSL-NAME]
:if($id!="") do={
  :set wg [/ip route get $id dst-address]
  :log info ($ADSL-NAME . "的网关是" . $wg)
  }\
else={
  :log error ("找不到" . $ADSL-NAME . "的网关,该设备不存在或没启用")
  }



B求系统中所有ADSL的网关IP
#---取全部的ADSL接口----
:set ADSL [/interface pppoe-client find]
:if($ADSL!="") do={
  :foreach i in=$ADSL do={
    :set ADSL-NAME [/interface pppoe-client get $i name]
    :set id [/ip route find interface=$ADSL-NAME]
    :if($id!="") do={
      :set wg [/ip route get $id dst-address]
      :log info ($ADSL-NAME . "的网关是" . $wg)
      }
#   小经验:else不能嵌套,外层有了一个else这里就不能有了,要用一个条件相反的if,个人认为是ROS的缺陷
    :if(id="") do={
      :log error ($ADSL-NAME . "没启用")
      }
    }
  }\
else={
  :log error "没有找到ADSL设备"
  }

若有不妥,欢迎指正
routeros
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-28 07:17 , Processed in 0.039937 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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