久久动一动 发表于 2008-12-30 20:30:55

谁知道 ROS 3.X 里 Layer7-protocol 的语法?

本帖最后由 久久动一动 于 2008-12-30 20:38 编辑

研究了好几天才知道这个语法叫“正则表达式”。根据我这几天的研究,“正则表达式”有众多版本,基本格式大致一样,但是细微上有所不同。不同版本之间的表达式不通用(有LINUX的,有JAVA的,有C++的,有UNIX的)。可怜的我照着这个教程 http://www.unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm 钻研了4天,进入实际在ROS上试验时才发现行不通。郁闷啊!(到现在我还不知道这个教材说教的正则表达式究竟可以用在什么系统之上)

   网大你个JB!你就甩一句“Regexp可以通过网上搜索相关资料了解。”害得人家钻研了4天后才发现你说的东西是没谱的!你不是误人子弟嘛?!


举个例子来说明: 限制QQ。QQ登陆的数据包特征是以16进制字符02开头,以16进制字符03结尾。只需要把这个特征的数据包标示出来。即可精确标明QQ登陆请求的数据包


那么:Iptables上的正则表达式为“^\x02.+ \x03$”   而ROS却表示为:“^.\?\02.+\03\$”   何解?

以上,相同的语法有:"^" 都是代表数据包的开头 "$"都是代表数据包的结尾。“.+”代表重头到尾(我的理解)

不同的是:Iptables 用\x来表示16进制。ROS直接\02就能表示16进制的02了。

矛盾的是。多数教材上都是说,"\"是取消元字符的符号,如要表示"?" 则应该用"\?"那$也是个元字符啊,代表结尾的元字符。ROS的"\$"是什么意思? 我以为ROS错了,但是直接输入\03$输不了,提示错误。郁闷了。。。。。。。。。


看来ROS的layer7-protocol 的编写一定有专门的规则。也就是语法。谁能提供个教程?或则告诉俺应该参考哪方面的资料呀?官方网我上过了,没有关于Regexp的介绍。官方网站都不告诉我们应该参考什么资料啊?!!!!!那成都网大上的“常用程序的7层协议脚本”是怎么写出来的?

zooyo 发表于 2008-12-31 09:35:54

本帖最后由 zooyo 于 2008-12-31 09:37 编辑

mikrotik以后就是你孙子,我重孙子,3.0的脚本语法也变了,官方也没资料,到了后面完全是在猜。

久久动一动 发表于 2008-12-31 12:40:31

mikrotik以后就是你孙子,我重孙子,3.0的脚本语法也变了,官方也没资料,到了后面完全是在猜。
zooyo 发表于 2008-12-31 09:35 http://bbs.routerclub.com/images/common/back.gif


哦~~我想起来了。好像看过谁的帖子,里面也有人发牢骚说“ROS没事变语法干什么。”

那关于L7,只能转向IPtables阵营咯。

big020726 发表于 2009-1-1 08:51:39

还是省事从官网上选择现成的吧

呵呵 发表于 2009-4-2 18:53:40

用“^\x02.+ \x03$”和ros自己的效果是一样的
ros应该是支持标准的l7规则

呵呵 发表于 2009-4-2 18:54:11

去看看官方脚本里的表达式把

supermp3 发表于 2009-6-25 00:48:40

我也很想学学,可惜没有资料参考,真是郁闷

omni 发表于 2009-9-24 17:12:43

我试验了ROS兼容标准语法
页: [1]
查看完整版本: 谁知道 ROS 3.X 里 Layer7-protocol 的语法?