【发布时间】:2011-10-31 12:09:09
【问题描述】:
$str1="ssh_2-4^accept IN=ETH2 OUT=eth33 MAC=00:d0:c9:96:62:c0:00:1c:f0:98:19:57:08:00 SRC=192.168.200.30 DST=192.168.200.224 LEN=48 TOS=0x00 PREC=0x00 TTL=128 ID=30546 DF PROTO=TCP SPT=10159 DPT=4319 WINDOW=7300 RES=0x00 SYN URGP=0";
$str2="ssh_2-4^accept IN=ETH2 OUT=eth33 MAC=00:d0:c9:96:62:c0:00:1c:f0:98:19:57:08:00 SRC=192.168.200.30 DST=192.168.200.224 LEN=48 TOS=0x00 PREC=0x00 TTL=128 ID=30546 DF PROTO=ICMP 窗口=7300 RES=0x00 URGP=0";
我需要捕捉:
对于 $str1 ==> ssh_2-4, 接受, ETH@, eth33, 192.168.200.30, 192.168.200.224, TCP, 10159, 4319
对于 $str2 ==> ssh_2-4, 接受, ETH@, eth33, 192.168.200.30, 192.168.200.224, ICMP
我使用下面的正则表达式并且对 $str1 非常有效,但不适用于 $str2:
(\w*)\^(\w*).*IN=(\S*).*OUT=(\S*).*SRC=(\S* ).*DST=(\S*).*PROTO=(\S*).*SPT=(\d*).*DPT=(\d*).*
什么是适合这个目的的正则表达式?
【问题讨论】:
-
它与
$str2不匹配,因为缺少SPT和DPT字段。