加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl地址转换

发布时间:2020-12-16 00:31:07 所属栏目:大数据 来源:网络整理
导读:#!/usr/bin/perl -w #### 将十进制数转换成8为二进制 sub dectobin { ? ? substr(unpack("B31",pack("N",shift)),-8); } #### 将32位二进制转换成十进制 sub bintodec { ? ? unpack("N",pack("B32",substr("0" x 32 . shift,-32))); } #### 将二进制表示的 I
#!/usr/bin/perl -w #### 将十进制数转换成8为二进制 sub dectobin { ? ? substr(unpack("B31",pack("N",shift)),-8); } #### 将32位二进制转换成十进制 sub bintodec { ? ? unpack("N",pack("B32",substr("0" x 32 . shift,-32))); } #### 将二进制表示的 IP/子网掩码转换成十进制形式 sub ipmask_bin2dec { ? ? my $prefix = ""; ? ? my $result; ? ? map { $result .= $prefix . &bintodec($_); $prefix = "."; ? ? } split (/./,shift); ? ? return $result; } #### 将十进制表示的 IP/子网掩码转换成二进制形式 sub ipmask_dec2bin { ? ? my $prefix = ""; ? ? my $result; ? ? map { $result .= $prefix . &dectobin($_); $prefix = "."; ? ? } split (/./,shift); ? ? return $result; } #### 将 CIDR 表示的子网掩码转换成十进制形式 sub ipmask_cidr2dec { ? ? my $cidr_num = shift(); ? ? return if ($cidr_num < 0 || $cidr_num > 32); ? ? (my $mask = 1 x $cidr_num . 0 x (32-$cidr_num)) =~ ? ? ? ? s/(d{8})(d{8})(d{8})(d{8})/$1.$2.$3.$4/; print "#####$mask####n"; ? ? return &ipmask_bin2dec($mask); } my $dec_ip = "192.168.2.1"; my $dec_mask = "255.255.255.128"; my $cidr_num = 25; #my $bin_ip = &ipmask_dec2bin($dec_ip); #my $bin_mask = &ipmask_dec2bin($dec_mask); my $bin_mask2 = &ipmask_cidr2dec($cidr_num); my $test = &dectobin(32); print "Decimal IP: $dec_ipn"; print "Binary IP: $bin_ipn"; print "Decimal Netmask: $dec_maskn"; print "Binary Netmask: $bin_maskn"; print "CIDR Netmask: $cidr_num = $bin_mask2n";

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读