找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3699|回复: 5

[脚本] ROS学习笔记:小问题,折腾人

[复制链接]
发表于 2011-10-25 20:57:26 | 显示全部楼层 |阅读模式

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

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

×
:local ednsuser "user"
:local ednspass "pass"
:local ednshost "user.3322.org"
:local ednsinterface "pppoe-out1"
:local members "http://members.3322.org/dyndns/update?system=dyndns"
#:local members "http://members.dyndns.org/nic/update?"
:local status
:local status [/interface get [/interface find  name=$ednsinterface] running]
:if ($status!=false) do={
:local ednslastip [:resolve $ednshost]
:if ([ :typeof $ednslastip ] = nil ) do={ :local ednslastip "0" }
:local ednsiph [ /ip address get [/ip address find interface=$ednsinterface ] address ]
:local ednsip [:pick $ednsiph 0 [:find $ednsiph "/"]]
:local ednsstr "&hostname=$ednshost&myip=$ednsip"
:if ($ednslastip != $ednsip) do={/tool fetch url=($members . $ednsstr) mode=http user=$ednsuser password=$ednspass dst-path=$ednshost
:delay 2
:local result [/file get $ednshost contents]
:log info ($ednshost . " " .$result)
/file remove $ednshost ;
}
}

上面这段3322动态域名更新是在本论坛上找的,里面就有这么一个小小的问题,但是我却没看到有人给新手们指出来——字符的转义。
:local members "http://members.3322.org/dyndns/update?system=dyndns"
就是这一句,折腾我好几个小时,还上3322官网上看他的API说明。问题出在哪?
就在那个“?”上面了,在ros里执行会被认为是一个查询而被省略掉了。
正确的应该是
:local members "http://members.3322.org/dyndns/update\?system=dyndns"
一个小小的转义字符“\”,

评分

参与人数 1铜板 +6 收起 理由
bobwalker + 6 谢谢分享,可能是终端模式问题。

查看全部评分

routeros
发表于 2011-10-25 21:56:50 | 显示全部楼层
楼主您说的这个问题貌似并不存在,在4.17 和 5.7上我都在使用这个脚本。一些4.10的版本运行此脚本超过1年了。

routeros
回复

使用道具 举报

 楼主| 发表于 2011-10-25 22:26:03 | 显示全部楼层


                               
登录/注册后可看大图


我之前用的是3.30
你说在4.17和5.7上可以,我也尝试了在5.7个,但也是一样会出错的
:local members "http://members.3322.org/dyndns/update?system=dyndns"
不用转义符,一复制这一段进去就会出现红色圈“1”的显示

:local members "http://members.3322.org/dyndns/update\?system=dyndns"
用了转义符,就能出现蓝圈里正解的命令显示
routeros
回复

使用道具 举报

发表于 2011-10-25 22:32:37 | 显示全部楼层
terminal 对脚本的解析方式与 scripts中是有少许区别的。
routeros
回复

使用道具 举报

 楼主| 发表于 2011-10-25 22:36:01 | 显示全部楼层
加上准没错的
我没加就总是更新不了
routeros
回复

使用道具 举报

发表于 2011-10-25 23:13:44 | 显示全部楼层
我承认,楼主说的是正确的,如果你是在ssh登录进去添加脚本的话。

我也发现了这个问题,不过没有像楼主这样热心发帖。
routeros
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-1 14:48 , Processed in 0.055893 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

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