action.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. class action {
  3. public function __construct() {
  4. $this->db = new db();
  5. }
  6. private function isListed($ip) {
  7. $dbAction = $this->db->prepare("SELECT ip FROM list WHERE ip = ?");
  8. $dbAction->bind_param('i',$ip);
  9. $dbAction->execute();
  10. $dbAction->store_result();
  11. if($dbAction->num_rows() == 0) {
  12. return false;
  13. }
  14. return true;
  15. }
  16. private function deListCount($ip) {
  17. $dbAction = $this->db->prepare("SELECT count FROM delist WHERE ip = ?");
  18. $dbAction->bind_param('i',$ip);
  19. $dbAction->execute();
  20. $dbAction->store_result();
  21. $dbAction->bind_result($count);
  22. $dbAction->fetch();
  23. return $count;
  24. }
  25. public function list($ip) {
  26. $dbAction = $this->db->prepare("INSERT IGNORE INTO list VALUES (?)");
  27. $dbAction->bind_param('i',$ip);
  28. return $dbAction->execute();
  29. }
  30. public function deList($ip) {
  31. if(!$this->isListed($ip)) { //set true to avoid discovering
  32. return true;
  33. }
  34. //check delisting count
  35. if ($this->delistCount($ip) > 3){
  36. echo "Fatal: ". long2ip($ip) . " delisted to often!\n";
  37. return false;
  38. }
  39. //delist ip
  40. $dbAction = $this->db->prepare("DELETE FROM list WHERE ip = ?");
  41. $dbAction->bind_param('i',$ip);
  42. $dbAction->execute();
  43. //update delist count
  44. $dbAction = $this->db->prepare("INSERT INTO delist (ip) VALUES (?) ON DUPLICATE KEY UPDATE count = count + 1");
  45. $dbAction->bind_param('i',$ip);
  46. $dbAction->execute();
  47. return true;
  48. }
  49. public function blackList($ip) {
  50. $this->deWhiteList($ip);
  51. $dbAction = $this->db->prepare("INSERT IGNORE INTO blacklist VALUES (?)");
  52. $dbAction->bind_param('i',$ip);
  53. return $dbAction->execute();
  54. }
  55. public function deBlackList($ip) {
  56. $dbAction = $this->db->prepare("DELETE FROM blacklist WHERE ip = (?)");
  57. $dbAction->bind_param('i',$ip);
  58. return $dbAction->execute();
  59. }
  60. public function whiteList($ip) {
  61. $this->deBlackList($ip);
  62. $dbAction = $this->db->prepare("INSERT IGNORE INTO whitelist VALUES (?)");
  63. $dbAction->bind_param('i',$ip);
  64. return $dbAction->execute();
  65. }
  66. public function deWhiteList($ip) {
  67. $dbAction = $this->db->prepare("DELETE FROM whitelist WHERE ip = (?)");
  68. $dbAction->bind_param('i',$ip);
  69. return $dbAction->execute();
  70. }
  71. }