文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>今天用perl很爽

今天用perl很爽

时间:2009-06-01  来源:huifeideluotuo

是这样的,最近公司网络进行改造,要求实现IP和MAC地址的绑定,交换机下的每一个端口对应一个vlan号,这样来实现办公网和开发网的访问权限控制,每一个信息点在交换机上都是逻辑相对应的,这样以后不用去插拔网线,如果员工需要调动,只需要将该端口加入其它vlan即可,这样就需要将信息点的数字转换成交换机上的端口号进行对应。

举个例子,有一个员工对应的信息点是16,那么他的这个信息点在机柜交换机上对应的是1号交换的16端口,那么46这个信息点对应的是2号交换机的22端口。

网络维护人员已经将信息点和内网、外网的对应关系收集起来,我这边需要做的就是在2层交换机上进行端口加入vlan的操作,刚开始比较笨,一个一个计算信息点和交换机上的对应关系,搞了半个小时,比较麻烦,还搞错几个(口算不好),说不定还有漏网之鱼。

想想是不是可以通过程序来解决,于是就用perl写个简单的判断,这样我就直接在交换机vlan上添加端口就可以了,岂不是很方便,脚本如下:

#!/usr/bin/perl -w
use strict;

my $filename = '/opt/test';

open FH, "< $filename" or die "can't open $filename  ..... ($!)";

foreach my $sit (<FH>) {
    chomp $sit;
    
    if ( $sit >= 1 and $sit <= 24) {
        my $switch = 1;
        my $port = $sit;
        print "$sit\t", "$switch\t", "$port", "\n";
    }

    elsif ( $sit >24  and $sit <= 48) {
        my $switch = 2;
        my $port = $sit - 24;
        print "$sit\t", "$switch\t", "$port", "\n";
    }

        elsif ( $sit >48  and $sit <= 72) {
        my $switch = 3;
        my $port = $sit - 48;
        print "$sit\t", "$switch\t", "$port", "\n";
    }

    elsif ( $sit >72  and $sit <= 96) {
        my $switch = 4;
        my $port = $sit - 72;
        print "$sit\t", "$switch\t", "$port", "\n";
    }

    elsif ( $sit >96  and $sit <= 120) {
        my $switch = 5;
        my $port = $sit - 96;
        print "$sit\t", "$switch\t", "$port", "\n";
    }
}

[root@localhost opt]# more test
40 (信息点)
59
69
43
9

执行结果,还有排序:
[root@localhost opt]# ./port.pl | sort -n
1       1(交换机)        1
22      1                22(端口号)
23      1                23
28      2                4
29      2                5

呵呵,这样一目了然,仅仅需要在对应的vlan上交换机上添加端口就ok了,先将配置写到文件,然后在交换机上粘贴,直接批量执行,还不会出错,活学活用很重要哦,大大减少了工作量。
相关阅读 更多 +
排行榜 更多 +
PvZ戴夫的时空冒险重置

PvZ戴夫的时空冒险重置

策略塔防 下载
PVZTV雪版阳光加50

PVZTV雪版阳光加50

策略塔防 下载
双刃战士雪姐

双刃战士雪姐

冒险解谜 下载