\n"; } else { fputs ($fp, "GET /admin.cgi?mode=viewxml HTTP/1.1\r\nHost: $server:$portnumber\r\nUser-Agent: Mozilla/4.0\r\nAuthorization: Basic ".base64_encode ("$username:$password")."\r\n\r\n"); while (!feof($fp)) { $xml .= fgets ($fp,128); } fclose ($fp); if (!preg_match ("/(.+)<\/LISTENERS>/", $xml, $regs)) { print "Could not find information. Possible incorrect username or password."; exit; } $blocks = split ("", $regs[1]); array_pop ($blocks); // Loop through each listener foreach ($blocks as $block) { preg_match ("/(.+)<\/USERAGENT>/", $block, $regs); $useragent = $regs[1]; preg_match ("/(.+)<\/POINTER>/", $block, $regs); $pointer = $regs[1]; preg_match ("/(.+)<\/HOSTNAME>/", $block, $regs); $hostname = $regs[1]; print "Known ripper found: "; $ripperfound = false; foreach ($knownrippers as $lookfor) { if (stristr ($useragent, $lookfor)) { $ripperfound = $lookfor; } } // Ripper found. Ban listener. if ($ripperfound) { print "$ripperfound for pointer $pointer. Banning "; $fp = @fsockopen ($server, $portnumber, $errno, $errstr, 30); if (!$fp) { print "failed
\n"; } else { fputs ($fp, "GET /admin.cgi?mode=bandst&bandst=$pointer&banmsk=255 HTTP/1.1\r\nHost: $server:$portnumber\r\nUser-Agent: Mozilla/4.0\r\nAuthorization: Basic ".base64_encode ("$username:$password")."\r\n\r\n"); fclose ($fp); print "successful!"; if ($recipient) { mail($recipient, "Listener banned", "$hostname\n$useragent", "From: $recipient"); } } } else { print "No ($useragent)"; } print "
\n"; } } ?>