Ciao,
Mi è arrivato per caso uno spam (che è passato sotto ai miei occhi per
caso ancora più fortuito) il cui link "clicca qui per non inviare" era
nella forma
http://womc.info/pass.php?a=donotemail&b=localname@xxxxxxxxxx&c=true
Al ché, uno dice, sai mai... e fa questo perlino per estrarre un po' di
domini di gente che non vuole essere spammata dalla mailbox ~/mail/spam:
#!/usr/bin/perl -w
my %doms;
while (<>)
{
if (/http:\/\/(.+?\.(com|biz|org|info|net))\//)
{
my $dom = $1;
$dom =~ s/=2E/./gi;
$doms{$dom}++;
}
}
for my $d (keys %doms)
{
#print "$d: ", $doms{$d}, "\n";
print "$d\n"
if ($doms{$d} > 3)
}
Eseguo, salvo, tolgo un paio di domini che certi problemi se li
risolvono da soli, tipo lists.debian.org, dopodiché lo wrappo in questo
shellino:
#!/bin/sh
(
for i in ~/mail/spam #list other mailboxes here
do
./domainextract < $i | recode html..lat1
done
) | sort | uniq
E mi vengono un po' di domini che hanno bisogno di aiuto. Ora, siccome
io non so chi sono gli utenti a quei domini, ma dovranno averne un
casino perché sono molto famosi, facco apt-get install rig (che fa
sempre comodo) e metto assieme quest'altro pezzetto di perl:
#!/usr/bin/perl -w
use strict;
use warnings;
my @domains;
my @names;
my @lnames;
open(IN, "domlist") or die "Can't open domain names";
while(<IN>)
{
chomp();
push(@domains, $_);
}
close(IN);
for my $i ("/usr/share/rig/mnames.idx", "/usr/share/rig/fnames.idx")
{
open(IN, $i) or die "Can't open $i: $!";
while(<IN>)
{
s/[\r\n]+$//;
push(@names, $_);
}
close(IN);
}
for my $i ("/usr/share/rig/lnames.idx")
{
open(IN, $i) or die "Can't open $i: $!";
while(<IN>)
{
s/[\r\n]+$//;
push(@lnames, $_);
}
close(IN);
}
sub get(\@)
{
my $list = shift;
return ${$list}[int(rand(@{$list}))];
}
for (my $i = 0; $i < 2000; $i++)
{
my $mail;
my $algo = int(rand(3));
if ($algo == 0)
{
$mail = get(@names);
} elsif ($algo == 1) {
$mail = lc((split('', get(@names)))[0]).get(@lnames);
} elsif ($algo == 2) {
$mail = lc(get(@names)).'.'.lc(get(@lnames));
}
$mail .= int(rand('9' x (1 + int(rand(4))))) if (rand(30) < 100);
$mail .= '@'.$domains[int(rand(@domains))];
print "$mail\n";
}
Ecco che ho un po' di mail che, sono sicuro, non vogliono avere più
comunicazioni da quel sito. A quel punto, provvedo a notificare:
#!/bin/sh
for i in `cat mails`
do
wget -O/dev/null "http://womc.info/pass.php?a=donotemail&b=$i&c=true"
done
Dite che può essere una cortesia carina?
Ciao,
Enrico
--
GPG key: 1024D/797EBFAB 2000-12-05 Enrico Zini <enrico@xxxxxxxxxx>
|