Joe Man
 
 
  
  Joined: 21 Jan 2004 Posts: 742 Location: S. Latitude 47°9', W. Longitude 123°43'
  | 
		
			
				 Posted: Sat Jan 29, 2005 8:32 am    Post subject: Spam trap. Even better than James' | 
				     | 
			 
			
				
  | 
			 
			
				http://www.absforums.com/index.php?showtopic=37308&st=0&#entry1284364
 
Behold. This might actually be useful to you, though it might not. I thought it might be interesting.
 
 
 	  | Code: | 	 		  <?php
 
 
/***********************
 
 * SpikeTrap           *
 
 * by rmuser           *
 
 * v006                *
 
 * Started 27 Jan 2005 *
 
 * Updated 29 Jan 2005 *
 
 ***********************/
 
 
$minlen = 4;
 
$maxlen = 13;
 
$minaddr = 18;
 
$maxaddr = 113;
 
$minlinks = 7;
 
$maxlinks = 33;
 
 
$alphabet = array('a', 
 
                  'a', 
 
                  'b', 
 
                  'c', 
 
                  'd', 
 
                  'e', 
 
                  'e', 
 
                  'f', 
 
                  'g', 
 
                  'h', 
 
                  'i', 
 
                  'i', 
 
                  'j', 
 
                  'k', 
 
                  'l', 
 
                  'm', 
 
                  'n', 
 
                  'o', 
 
                  'o', 
 
                  'p', 
 
                  'q', 
 
                  'r', 
 
                  's', 
 
                  't', 
 
                  'u', 
 
                  'u', 
 
                  'v', 
 
                  'w', 
 
                  'x', 
 
                  'y', 
 
                  'z');
 
                  
 
$tlds = array('.com', 
 
              '.com', 
 
              '.com', 
 
              '.com', 
 
              '.com', 
 
              '.com', 
 
              '.com', 
 
              '.net', 
 
              '.net', 
 
              '.net', 
 
              '.net', 
 
              '.net', 
 
              '.org', 
 
              '.org', 
 
              '.org', 
 
              '.edu', 
 
              '.gov', 
 
              '.mil', 
 
              '.biz', 
 
              '.info', 
 
              '.us', 
 
              '.co.uk', 
 
              '.ac.uk', 
 
              '.org.uk', 
 
              '.com.au', 
 
              '.co.nz', 
 
              '.co.jp', 
 
              '.ne.jp', 
 
              '.ac.jp', 
 
              '.fi', 
 
              '.se', 
 
              '.de', 
 
              '.nl', 
 
              '.ws', 
 
              '.cc', 
 
              '.tv', 
 
              '.ch', 
 
              '.no', 
 
              '.be', 
 
              '.ca', 
 
              '.cx', 
 
              '.pl', 
 
              '.ru', 
 
              '.tk');
 
 
function microrand() {
 
    list($usec, $sec) = explode(' ', microtime());
 
    return (float)$usec * 1000000;
 
}
 
 
function gen_addr() {
 
    global $minlen, $maxlen, $alphabet, $tlds;
 
    $namelen = mt_rand($minlen, $maxlen);
 
    $domainlen = mt_rand($minlen, $maxlen);
 
    $tld = $tlds[mt_rand(0, count($tlds)-1)];
 
    $name = '';
 
    for ($n = 0; $n <= $namelen; $n++) {
 
        $name .= $alphabet[mt_rand(0, count($alphabet)-1)];
 
    }
 
    $domain = '';
 
    for ($d = 0; $d <= $domainlen; $d++) {
 
        $domain .= $alphabet[mt_rand(0, count($alphabet)-1)];
 
    }
 
    echo '<a href="mailto:' . $name . '@' . $domain . $tld . '">' . $name . '@' . $domain . $tld . '</a>';
 
}
 
 
function gen_addr_nolink() {
 
    global $minlen, $maxlen, $alphabet, $tlds;
 
    $namelen = mt_rand($minlen, $maxlen);
 
    $domainlen = mt_rand($minlen, $maxlen);
 
    $tld = $tlds[mt_rand(0, count($tlds)-1)];
 
    $name = '';
 
    for ($n = 0; $n <= $namelen; $n++) {
 
        $name .= $alphabet[mt_rand(0, count($alphabet)-1)];
 
    }
 
    $domain = '';
 
    for ($d = 0; $d <= $domainlen; $d++) {
 
        $domain .= $alphabet[mt_rand(0, count($alphabet)-1)];
 
    }
 
    echo $name . '@' . $domain . $tld;
 
}
 
 
function gen_link($ext = '.html') {
 
    global $minlen, $maxlen, $alphabet;
 
    $namelen = mt_rand($minlen, $maxlen);
 
    $name = '';
 
    for ($n = 0; $n <= $namelen; $n++) {
 
        $name .= $alphabet[mt_rand(0, count($alphabet)-1)];
 
    }
 
    echo '<a href="http://' . $_SERVER['SERVER_NAME'] . $_SERVER['SCRIPT_NAME'] . '/' . mt_rand(1, 99999999999) . $ext . '">' . $name . '</a>';
 
}
 
 
function gen_text($len = 8) {
 
    global $alphabet;
 
    $text = '';
 
    for ($t = 0; $t <= $len; $t++) {
 
        $text .= $alphabet[mt_rand(0, count($alphabet)-1)];
 
    }
 
    echo $text;
 
}
 
 
// Access logging
 
$logfp = fopen('/home/ninjas/traplog.txt', 'a');
 
$loginfo = date("[H:i:s T j F Y]\t") . 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'] . "\t" . $_SERVER['REMOTE_ADDR'] . "\t" . gethostbyaddr($_SERVER['REMOTE_ADDR']) . "\t" . $_SERVER['HTTP_USER_AGENT'] . "\n";
 
fwrite($logfp, $loginfo);
 
fclose($logfp);
 
 
if (!isset($_SERVER['PATH_INFO'])) {
 
    mt_srand(microrand());
 
}
 
else {
 
    $path = explode('/', $_SERVER['PATH_INFO']);
 
    $path = explode('.', $path[1]);
 
    if (empty($path[0])) {
 
        mt_srand(microrand());
 
    }
 
    elseif (!is_numeric($path[0])) {
 
        mt_srand(microrand());
 
    }
 
    elseif (strlen($path[0]) > $maxlen) {
 
        mt_srand(microrand());
 
    }
 
    else {
 
        mt_srand($path[0]);
 
    }
 
}
 
 
$pattern = mt_rand(0, 2);
 
sleep(3);
 
switch ($pattern) {
 
    case 0:
 
        ?>
 
<HTML>
 
<HEAD>
 
<TITLE><?php for ($g = 0; $g <= mt_rand(1, 5); $g++) { gen_text(mt_rand(3, 11)); echo ' '; } ?></TITLE>
 
<META NAME="robots" CONTENT="noindex,nofollow">
 
</HEAD>
 
<BODY>
 
<P>
 
<?php
 
for ($w = 0; $w <= mt_rand(5, 19); $w++) {
 
    gen_text(mt_rand(3, 11));
 
    echo ' ';
 
}
 
?>
 
</P>
 
<P>
 
<?php
 
for ($a = 0; $a <= mt_rand($minaddr, $maxaddr); $a++) {
 
    gen_addr();
 
    echo "<BR>\n";
 
}
 
?>
 
</P>
 
<P>
 
<?php
 
for ($b = 0; $b <= mt_rand($minaddr, $maxaddr); $b++) {
 
    gen_addr_nolink();
 
    echo ' ';
 
}
 
?>
 
</P>
 
<P>
 
<?php
 
for ($l = 0; $l <= mt_rand($minlinks, $maxlinks); $l++) {
 
    gen_link('.html');
 
    echo ' ';
 
}
 
?>
 
</P>
 
<P>
 
<?php
 
for ($w = 0; $w <= mt_rand(7, 28); $w++) {
 
    gen_text(mt_rand(3, 11));
 
    echo ' ';
 
}
 
?>
 
</P>
 
</BODY>
 
</HTML>
 
        <?php
 
        break;
 
    case 1:
 
        echo '<?xml version="1.0" encoding="iso-8859-1"?','>';
 
        ?>
 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
 
<head>
 
<title><?php for ($g = 0; $g <= mt_rand(2, 8); $g++) { gen_text(mt_rand(4, 9)); echo ' '; } ?></title>
 
<meta name="robots" content="noindex,nofollow" />
 
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
 
</head>
 
<body>
 
<div>
 
<?php
 
for ($a = 0; $a <= mt_rand($minaddr, $maxaddr); $a++) {
 
    gen_addr();
 
    echo ' ';
 
}
 
?>
 
<br /><br />
 
<?php
 
for ($w = 0; $w <= mt_rand(8, 27); $w++) {
 
    gen_text(mt_rand(6, 15));
 
    echo ' ';
 
}
 
?>
 
<br /><br />
 
<?php
 
for ($b = 0; $b <= mt_rand($minaddr, $maxaddr); $b++) {
 
    gen_addr_nolink();
 
    echo "<br />\n";
 
}
 
?>
 
<br />
 
<?php
 
for ($w = 0; $w <= mt_rand(7, 28); $w++) {
 
    gen_text(mt_rand(3, 11));
 
    echo ' ';
 
}
 
?>
 
<br /><br />
 
<?php
 
for ($l = 0; $l <= mt_rand($minlinks, $maxlinks); $l++) {
 
    gen_link('.php');
 
    echo "<br />\n";
 
}
 
?>
 
</div>
 
</body>
 
</html>
 
        <?php
 
        break;
 
    case 2:
 
        ?>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 
<html>
 
<head>
 
<title><?php for ($g = 0; $g <= mt_rand(3, 7); $g++) { gen_text(mt_rand(2, 7)); echo ' '; } ?></title>
 
<meta name="robots" content="noindex,nofollow">
 
</head>
 
<body>
 
<?php
 
for ($b = 0; $b <= mt_rand($minaddr, $maxaddr); $b++) {
 
    gen_addr_nolink();
 
    echo ' ';
 
}
 
?>
 
<br><br>
 
<?php
 
for ($a = 0; $a <= mt_rand($minaddr, $maxaddr); $a++) {
 
    gen_addr();
 
    echo "<br>\n";
 
}
 
?>
 
<br>
 
<?php
 
for ($w = 0; $w <= mt_rand(5, 19); $w++) {
 
    gen_text(mt_rand(3, 11));
 
    echo ' ';
 
}
 
?>
 
<br><br>
 
<?php
 
for ($l = 0; $l <= mt_rand($minlinks, $maxlinks); $l++) {
 
    gen_link('.htm');
 
    echo ' ';
 
}
 
?>
 
</body>
 
</html>
 
        <?php
 
        break;
 
}
 
?> | 	 
  _________________ "Everyone has 200,000 bad drawings in them, the sooner you get them out the better."
 
~Charles Martin Jones
 
 
Last edited by Joe Man on Fri Dec 13, 1957 1:21 am; edited 2,892 time in total | 
			 
		  |