免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1440 | 回复: 5
打印 上一主题 下一主题

关于将文件中IP的一些相关的东西提取出来的 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-03-27 12:35 |只看该作者 |倒序浏览
帮个忙,我不会shell编程

下面是一个文件里的一些配置,我想要把里面的ip地址,掩码,端口分别给取出,还要区分源和目的。(嗯,我是同一个目录下有好几个这样子写的文件,都要把这些东西取出来。)

希望是这样取出并赋给这些变量的的:
SIP=×.×.×.×(源IP)
DIP=×.×.×.×(目的IP)
NETMASK=24(掩码)
SPORTS=34:78(源端口)
DPORTS=20:21(目的端口)


下面的文件的源和目的是通过“,”来区分的。
# Some examples:

       RULE=10.1.1.0/24:80
#               selects traffic going to port 80 in network 10.1.1.0
#
       RULE=10.2.2.5
#               selects traffic going to any port on single host 10.2.2.5
#
       RULE=10.2.2.5:20/0xfffe
#               selects traffic going to ports 20 and 21 on host 10.2.2.5
#
       RULE=:25,10.2.2.128/26:5000
#               selects traffic going from anywhere on port 50 to
#               port 5000 in network 10.2.2.128
#
       RULE=10.5.5.5:80,
#               selects traffic going from port 80 of single host 10.5.5.5

谁能帮我写一个小的脚本。
急用,谢谢!!!

论坛徽章:
0
2 [报告]
发表于 2003-03-27 14:01 |只看该作者

关于将文件中IP的一些相关的东西提取出来的

SIP=×.×.×.×(源IP)
DIP=×.×.×.×(目的IP)
NETMASK=24(掩码)
SPORTS=34:78(源端口)
DPORTS=20:21(目的端口)

就针对你上面的例子,SIP,DIP等应该取什么值?

论坛徽章:
0
3 [报告]
发表于 2003-03-27 14:43 |只看该作者

关于将文件中IP的一些相关的东西提取出来的

原帖由 "nkliyong" 发表:
SIP=×.×.×.×(源IP)
DIP=×.×.×.×(目的IP)
NETMASK=24(掩码)
SPORTS=34:78(源端口)
DPORTS=20:21(目的端口)

就针对你上面的例子,SIP,DIP等应该取什么值?


#
RULE=10.2.2.5:20/0xfffe
# selects traffic going to ports 20 and 21 on host 10.2.2.5
# 这个没有“,”,所以就是目的ip,DIP=10.2.2.5

RULE=:25,10.2.2.128/26:5000
# selects traffic going from anywhere on port 50 to
# port 5000 in network 10.2.2.128
# 这个:25后有个“,”那么就是源ip,SIP=0/0,就是所有的ip了。而后一个则
#没有再加“,”,就是目的ip,DIP=10.2.2.128

论坛徽章:
0
4 [报告]
发表于 2003-03-27 22:02 |只看该作者

关于将文件中IP的一些相关的东西提取出来的

BEGIN { FS="," }
{
    if ($1 !~ /\./ ) SIP=0.0;
    if ($2 !~ /\./ ) DIP=0.0;
    split($1,SRC,"[^0-9.]";
    split($2,DST,"[^0-9.]";
    for ( i in SRC ) if ( SRC ~ /\./ ) SIP=SRC;
    for ( i in DST ) if ( DST ~ /\./ ) DIP=DST;
    split($1,SRC,":"; split(SRC[2],SRC1,"[^0-9:]"; SPORTS=SRC1[1];
    split($2,DST,":"; split(DST[2],DST1,"[^0-9:]"; DPORTS=DST1[1];
    split($0,SRC,"/"; split(SRC[2],SRC1,"[^0-9a-z/]"; netmask=SRC1[1];

    printf "SIP=%s\t SPORTS=%s\t",SIP,SPORTS;
    printf "DIP=%s\t DPORTS=%s\t",DIP,DPORTS;
    printf "netmask=%s\n",netmask
}

论坛徽章:
0
5 [报告]
发表于 2003-03-28 11:17 |只看该作者

关于将文件中IP的一些相关的东西提取出来的

谢谢了。

论坛徽章:
0
6 [报告]
发表于 2003-03-28 11:20 |只看该作者

关于将文件中IP的一些相关的东西提取出来的

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

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP