samedi, décembre 21, 2024
Nom d'utilisateur : Mot de passe :
Home > Quickies > Halte au spam !
[NEWS]
Envoyé par unreal
Et oui, c'est très chiant de recevoir sans cesse du spam, alors j'ai développé un petit script qui permet de générer un grand nombre d'adresses sémi-aléatoires. En effet, les spammeurs exploitent des bots (harvesters) qui parcourent le Net à la recherche de pages contenant des adresses e-mail, qui seront donc collectées et deviendront cible de spam. Ce petit script facile à mettre en place permet de satisfaire parfaitement les besoins des spammeurs et dispose des features suivantes :

  • Génération de noms/adresses prononciables grâce à une super technologie que j'ai mise au point en une 1/2 heure.
  • Paramètrage du temps de génération des pages (histoire de ralentir les bots au maximum). Sinon la génération se fait en quelques ms à peine.
  • Paramètrage du nombre d'e-mails par page, de même que le nombre de pages qui sera proposé à explorer


Ci-dessous le code, libre à vous de l'améliorer.
<?php
$emails_per_page = 10;
$page_gen_time = 0; // Temps que la page mettra a se generer (en secondes)
$tot_pages = 2; // Nombre de pages d'emails qui seront proposes

function wordGen($Length) {
    static $data = array(
        'v1' => array('a', 'e', 'i', 'o', 'u'),
        'v2' => array('ee', 'oo'),
        'c1' => array('b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'r', 's', 't', 'v', 'w', 'y', 'z'),
        'c2' => array('ch','dd', 'gg', 'll', 'qu', 'ss', 'tt'),
        'end' => array('age', 'ance', 'ate', 'action', 'ence', 'er', 'ic', 'ie', 'ive', 'ude', 'y'),
    );

    static $order = array(
        '4' => array('c1', 'end'),
        '5' => array('c1', 'v1', 'c1', 'end'),
        '6' => array('c1', 'v2', 'c1', 'end'),
        '7' => array('c1', 'v2', 'c2', 'end'),
        '8' => array('c1', 'v1', 'c2', 'v1', 'c1', 'end')
    );

    $Str = NULL;

    $len = count($order[$Length]);

    for($i = 0 ; $i < $len ; $i++) {
        $rand = rand(0, count($data[$order[$Length][$i]]) - 1);
        $Str .= $data[$order[$Length][$i]][$rand];
    }

    return($Str);
}

function emailGen() {
    static $net = array('com', 'co.uk', 'fr', 'net', 'org');

    $nameLength = rand(4, 8);
    $domainLength = rand(5, 8);
    $Length = array($nameLength, $domainLength);

    $Str = NULL;

    for($repeat = 0 ; $repeat < 2 ; $repeat++) {
        $Str .= wordGen($Length[$repeat]);

        if ($repeat == 0)
            $Str .= '@';
    }

    $Str .= '.' . $net[rand(0, count($net) - 1)];

    return($Str);
}

$page = 1;
if (isset($_GET['page']));
$page = $_GET['page'];

if ($page + 1 < $tot_pages) {
    $Str = '<a href="email.php?page=' . ($page + 1) . '">Contact:</a>';
} else {
    $Str = 'Contact:';
}

$Str .= "<br /><br />\n";

for($i = 0 ; $i < $emails_per_page ; $i++) {
    $email = emailGen();
    $Str .= '<tr><td>' . ucfirst(wordGen(rand(4, 8))) . ' ' . ucfirst(wordGen(rand(4, 8))) . "</td><td><a href=\"mailto:$email\">$email</a></td></tr>\n";
}

sleep($page_gen_time);
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Emails</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
    <table>
        <?php echo ($Str); ?>
    </table>
</body>
</html>


Vous pouvez voir le code précédent en action par ici.

Posté le 25/04/05 à 19:13