This PHP code produces a page of random email addresses, and links to other virtual files, each of which contain another list of email addresses.
When an email-harvesting program ("a spider") discovers this page, it will write down each of the email addresses in its list, and possibly follow the links to more pages of random links.
As soon as the wannabe-spammer has a few thousand fake email addresses in his list, it becomes very difficult to tell them from the real ones, and the list becomes useless, as does the email-harvesting program.
Having such a page on my site protects my site, as it makes it more difficult to automatically scan for real email addresses on the site. Having many such pages on many sites helps the internet in general, as spammers no longer have reliable lists of email addresses.
See an example of the program in use here
You will need a webserver capable of running PHP scripts.
This program is released under the GNU general public license, see www.gnu.org for details.
<?php
$Domains = array('yahoo.com' ,'microsoft.com' ,'msn.com' ,'ntl.com' ,'msdn.org' ,'fbi.gov' ,'ftc.gov' ,'nytimes.com' ,'yahoo.fr' ,'yahoo.de' ,'aol.com' ,'another.com' );
$FirstNames = array('Emily', 'Sarah', 'Taylor', 'Jessica', 'Ashley', 'Samantha', 'Madison', 'Hannah', 'Kayla', 'Alexis', 'Brianna', 'Jennifer', 'Lauren', 'Megan', 'Rachel', 'Nicole', 'Alyssa', 'Amanda', 'Morgan', 'Brittany', 'Victoria', 'Alexandra', 'Amber', 'Stephanie', 'Elizabeth', 'Haley', 'Courtney', 'Katherine', 'Olivia', 'Rebecca', 'Jasmine', 'Sydney', 'Anna', 'Julia', 'Maria', 'Danielle', 'Kaitlyn', 'Abigail', 'Jordan', 'Shelby', 'Brooke', 'Sara');
$LastNames = array( 'Addams', 'Addison', 'Aldrich', 'Altemus', 'Andersen', 'Cherbuliez', 'Chesterton', 'Churchill', 'Cicero', 'Cist', 'Clarke', 'Clemens', 'Coke', 'Colby', 'Coleridge', 'Conkling', 'Conrad', 'Cotton', 'Coulter', 'Crile', 'Cunninghame-Graham', 'Daviess', 'Davis', 'De-Mille', 'Declan', 'Defoe', 'Deland', 'Dewey', 'Dobie', 'Donn-Byrne', 'Dostoyevsky', 'Doubleday', 'Douglas', 'Dryden', 'Duhamel', 'Dunbar', 'Dürer', 'Hendrick', 'Hichens', 'Hill', 'Holmes', 'Howes', 'Hubbard', 'Jackson', 'Jenkins', 'Jepson', 'Jewett', 'John-of-Damascus', 'Judson', 'Kane', 'Keene', 'Keim', 'MacKay', 'Macaulay', 'Macy', 'Malory', 'Malthus', 'Mandeville', 'Mansfield', 'Marguerite', 'Marquis', 'Marshall', 'Marx', 'Massa', 'Maturin', 'Mayo', 'McCabe', 'McNeill', 'Merriman', 'Michelson', 'Millay', 'Miller', 'Mitchell', 'Moldeven', 'Montespan', 'Moore', 'Phillpotts', 'Polly', 'Pope', 'Pushkin', 'Ralphson', 'Ransome', 'Ray', 'Reed', 'Reu', 'Reynolds', 'Rice', 'Richardson', 'Ridpath', 'Rinehart', 'Roberts', 'Roget', 'Rojas', 'Ross', 'Rowlandson', 'Sand', 'Sands', 'Sangharakshita', 'Sangster', 'Schiller', 'Seeger', 'Severy', 'Sharp', 'Shaw', 'Shelley', 'Sturluson', 'Sumanaru', 'Summerhayes', 'Tacitus', 'Tao', 'Taylor', 'Teasdale', 'Terhune', 'Thorne', 'Tocqueville', 'Todd', 'Trenck', 'Wodehouse', 'Wyss', 'Young', 'Osbourne', 'Paes', 'Poland', 'Sirius', 'Simmonds', );
$NumEmailsNeeded=30;
/* Setup the random number generator (CALL THIS FUNCTION ONLY ONCE) */
srand ((double) microtime() * 1000000);
/* Display header */
$FirstName = $FirstNames[Array_rand($FirstNames)];
$LastName = $LastNames[Array_rand($LastNames)];
echo "\n<h1>Contact details for $FirstName $LastName</h1>";
for ($i=0; $i<$NumEmailsNeeded; $i++)
{
$Domain = $Domains[Array_rand($Domains)];
$FirstName = $FirstNames[Array_rand($FirstNames)];
$LastName = $LastNames[Array_rand($LastNames)];
/* Pick a link at random from those which are relevant */
$EmailAddress = $FirstName . "." . $LastName . '@' . $Domain;
$LinkAddress = "index.php?Lookup=$FirstName";
/* Display the HTML for the link */
if (rand(1,3)==1)
{
echo "\n<p><a href=\"$LinkAddress\">$FirstName $LastName</a></p>";
}
else
{
echo "\n<p><a href=\"mailto:$EmailAddress\">$EmailAddress</a></p>";
}
}
?>