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 :
Ci-dessous le code, libre à vous de l'améliorer.
Vous pouvez voir le code précédent en action par ici.
- 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>
$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