日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

perl地址转换

發布時間:2025/4/14 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 perl地址转换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#!/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_ip\n";
print "Binary IP: $bin_ip\n";
print "Decimal Netmask: $dec_mask\n";
print "Binary Netmask: $bin_mask\n";
print "CIDR Netmask: $cidr_num = $bin_mask2\n";


總結

以上是生活随笔為你收集整理的perl地址转换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。