Perlについての質問箱 33箱目
■ このスレッドは過去ログ倉庫に格納されています
0425デフォルトの名無しさん
2007/11/13(火) 11:54:45192.168.0.0
192.168.0.1
192.168.0.2
:
と変換するプログラムですが、
#!/usr/local/bin/perl
if( $#ARGV eq -1 ){
die();
}
($ADDR,$BITL) = split( /\//, $ARGV[0] );
($S1,$S2,$S3,$S4) = split( /\./, $ADDR );
$MASK=0;
if( $BITL >= 24 ){
$mbit=0x80;
for($CNT=0;$CNT<($BITL-24);$CNT++){
$MASK |= $mbit;
$mbit = $mbit>>1;
}
}
else{
die();
}
$LEN = ( $MASK^255 ) ;
for($CNT=$S4;$CNT<=($S4+$LEN);$CNT++){
print "$S1\.$S2\.$S3\.$CNT\n";
}
このままだと192.168.0.0/15のようなサブネットのアドレス変換は行うことが
できません。上のプログラムを192.168.0.0/15のようなアドレス変換にも対応
できるようにするにはどうすればいいでしょうか?
また、同じようなプログラムはないでしょうか?
■ このスレッドは過去ログ倉庫に格納されています