combine.pl: creates a seedlist from several dnsseed.dump files
This commit is contained in:
parent
bb4595e3d0
commit
d5521c6bd2
1 changed files with 48 additions and 0 deletions
48
combine.pl
Normal file
48
combine.pl
Normal file
|
@ -0,0 +1,48 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
use strict;
|
||||
|
||||
sub loadFile {
|
||||
my ($file) = @_;
|
||||
my %ret;
|
||||
open FILE,$file;
|
||||
while (<FILE>) {
|
||||
my ($addr,$p2h,$p8h,$p1d,$p1w,$p1m) = split(/\s+/,$_);
|
||||
if ($p1m =~ /\A([1-9.]+)%\Z/) {
|
||||
my $x = log($1*0.01)/log(0.5);
|
||||
$ret{$addr} = $x;
|
||||
}
|
||||
}
|
||||
close FILE;
|
||||
return \%ret;
|
||||
}
|
||||
|
||||
sub combine {
|
||||
my ($f1,$f2) = @_;
|
||||
my %ret;
|
||||
for my $k1 (keys %{$f1}) {
|
||||
if (defined $f2->{$k1}) {
|
||||
$ret{$k1} = $f1->{$k1} + $f2->{$k1};
|
||||
}
|
||||
}
|
||||
return \%ret;
|
||||
}
|
||||
|
||||
my $res;
|
||||
my $n=0;
|
||||
for my $file (@ARGV) {
|
||||
my $r = loadFile($file);
|
||||
if ($res) {
|
||||
$res = combine($res,$r);
|
||||
} else {
|
||||
$res = $r;
|
||||
}
|
||||
$n++;
|
||||
}
|
||||
|
||||
for my $addr (sort { $res->{$a} <=> $res->{$b} } (keys %{$res})) {
|
||||
if ($addr =~ /\A(\d+)\.(\d+)\.(\d+)\.(\d+):8333/) {
|
||||
my $a = $1*0x1000000 + $2*0x10000 + $3*0x100 + $4;
|
||||
printf "0x%08x %s %g%%\n",$a,$addr,exp(log(0.5)*$res->{$addr}/$n)*100;
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue