Last Updated on December 9, 2014 EST by Jordan
I decided to create a command line PHP script that would list the current iThemes Security Logs and also allow you to remove them based on IP Address. Here is the script which I’ve called “ithemes-clearip.php” and it’s Github link, its dirty and really was made in like 15 minutes.
https://github.com/jordantrizz/wordpress-scripts
<? // List and remove iThemes Security Log entries based on IP Address // Options $shortopts ="d:"; $shortopts .="l"; $options = getopt($shortopts); //Database Connect require_once("wp-config.php"); $link = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); $database_name = DB_NAME; if ($conn->connect_error) { die("Cant connect to database using wp-config.php details - Connection failed: " . $conn->connect_error); } if(!$options) { print "There was a problem reading in the options.\n\n"; exit(1); } if(array_key_exists("d",$options)) { $ip = $options["d"]; if(filter_var($ip, FILTER_VALIDATE_IP)){ echo "Deleting all entries for IP Address ". $options["d"] ." in $database_name\n\n"; $sql="delete from ".$database_name.".wp_itsec_log where log_host = \"".$ip."\"\n\n"; echo $sql; if($link->query($sql) === TRUE) { echo "Deleted ". mysqli_affected_rows($link)." rows\n\n"; } else { echo "Error deleting record: " . $conn->error; } } else { print "You didn't specify a correct IP Address.\n\n"; exit(1); } } elseif(empty($options["l"])) { $sql = 'SELECT log_host,log_date from wp_itsec_log'; $result = $link->query($sql) or die(mysql_error()); if (!$result) { print 'Could not run query: ' . mysql_error(); exit; } print "\nLog Host\tLog Date"; print "\n-----------------------------------"; while($row = mysqli_fetch_row($result)) { print "\n".$row['0']."\t".$row['1']; } print "\n"; mysqli_close($link); } ?>