X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=cmd%2Fshow%2Fbadip.pl;h=55fa556b8e675384e9ccd75d24439721d0ddfd16;hb=d0b21f21559a63d84086b549bb7570e2e16b75cd;hp=b378abde47e08a89f63a0e20e2376460fa4af5c8;hpb=61fe8f951eba89d430046d23bca9d65b30561578;p=spider.git diff --git a/cmd/show/badip.pl b/cmd/show/badip.pl index b378abde..55fa556b 100644 --- a/cmd/show/badip.pl +++ b/cmd/show/badip.pl @@ -1,7 +1,7 @@ # -# set list of bad dx nodes +# show (or find) list of bad dx nodes # -# Copyright (c) 2021 - Dirk Koopman G1TLH +# Copyright (c) 2021-2023 - Dirk Koopman G1TLH # # # @@ -9,30 +9,35 @@ my ($self, $line) = @_; return (1, $self->msg('e5')) if $self->remotecmd; # are we permitted? return (1, $self->msg('e5')) if $self->priv < 6; +return (1, q{Please install Net::CIDR::Lite or libnet-cidr-lite-perl to use this command}) unless $DXCIDR::active; + my @out; my @added; my @in = split /\s+/, $line; my $maxlth = 0; +my $width = $self->width // 80; #$DB::single = 1; - my @list = map {my $s = $_; $s =~ s|/32$||; $maxlth = length $s if length $s > $maxlth; $s =~ /^1$/?undef:$s} DXCIDR::list(); my @l; $maxlth //= 20; -my $n = int (80/($maxlth+1)); +my $n = int ($width/($maxlth+1)); my $format = "\%-${maxlth}s " x $n; chop $format; +my $count = 0; + foreach my $list (@list) { if (@in) { - for (@in) { - if ($list =~ /$_/i) { + for my $in (@in) { + if ($list =~ /$in/i) { push @out, $list; - last; + ++$count; } } } else { + ++$count; if (@l > $n) { push @out, sprintf $format, @l; @l = (); @@ -45,5 +50,5 @@ unless (@in) { push @out, sprintf $format, @l; } -push @out, "show/badip: " . scalar @list . " records found"; +push @out, "show/badip: $count records found"; return (1, @out);