10 進数から 2 進数に変換する必要がある数値 (3232251030) があります。バイナリを取得したら、その 8 ビットを数字に分割して、IP アドレスを明らかにする必要があります。
10 進数から 2 進数への変換は簡単です。
sub dec2bin { my $str = unpack("B32", pack("N", shift)); $str =~ s/^0+(?=\d)//; # otherwise you'll get leading zeros return $str; }
sub bin2dec { return unpack("N", pack("B32", substr("0" x 32 . shift, -32))); }
e.g. $num = bin2dec('0110110'); # $num is 54 $binstr = dec2bin(54); # $binstr is 110110
参照: http://www.perlmonks.org/?node_id=2664
そこで、バイナリから 8 桁を分割し、IP アドレスを作成する数字に保存する必要があります。
$num = dec2bin('3232251030');
($num はバイナリで "11000000 10101000 01000100 00001110" です)
各 8 ビット「11000000 10101000 01000100 00001110」を「192.168.60.150」に分割して保存する必要があります。
アドバイスしますか?私はこのための分割機能を検討しています..