|
@@ -2,6 +2,7 @@
|
|
|
error_reporting(E_ALL);
|
|
error_reporting(E_ALL);
|
|
|
$ip = trim($_GET['ip']);
|
|
$ip = trim($_GET['ip']);
|
|
|
$token = trim($_GET['token']);
|
|
$token = trim($_GET['token']);
|
|
|
|
|
+$action = trim($_GET['action']);
|
|
|
$db = new mysqli('localhost', 'ban', 'Blubb123-', 'ban');
|
|
$db = new mysqli('localhost', 'ban', 'Blubb123-', 'ban');
|
|
|
if ($db->connect_errno){
|
|
if ($db->connect_errno){
|
|
|
die($db->connect_error);
|
|
die($db->connect_error);
|
|
@@ -22,18 +23,69 @@ function checkToken($token,$db) {
|
|
|
return false;
|
|
return false;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+function checkAdmin($token,$db) {
|
|
|
|
|
+ $dbAction = $db->prepare("SELECT description FROM clients WHERE token = ?");
|
|
|
|
|
+ $dbAction->bind_param('s',$token);
|
|
|
|
|
+ $dbAction->execute();
|
|
|
|
|
+ $dbAction->store_result();
|
|
|
|
|
+ $dbAction->bind_result($desc);
|
|
|
|
|
+ $dbAction->fetch();
|
|
|
|
|
+ if ($dbAction->num_rows() == 1){
|
|
|
|
|
+ if($desc == 'admin') {
|
|
|
|
|
+ return true;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return false;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
function set($ip,$db) {
|
|
function set($ip,$db) {
|
|
|
$dbAction = $db->prepare("INSERT IGNORE INTO list VALUES (?)");
|
|
$dbAction = $db->prepare("INSERT IGNORE INTO list VALUES (?)");
|
|
|
$dbAction->bind_param('i',$ip);
|
|
$dbAction->bind_param('i',$ip);
|
|
|
return $dbAction->execute();
|
|
return $dbAction->execute();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-if (checkToken($token,$db)){
|
|
|
|
|
- if(set(ip2long($ip),$db)){
|
|
|
|
|
- echo " inserted $ip" . PHP_EOL;
|
|
|
|
|
- } else {
|
|
|
|
|
- echo " fehler" . PHP_EOL;
|
|
|
|
|
- };
|
|
|
|
|
-} else {
|
|
|
|
|
- echo "Client $token not registered" . PHP_EOL;
|
|
|
|
|
-};
|
|
|
|
|
|
|
+function delist($ip,$db) {
|
|
|
|
|
+ $dbAction = $db->prepare("INSERT INTO delist ('ip') VALUES (?) ON DUPLICATE KEY count = count + 1");
|
|
|
|
|
+ $dbAction->bind_param('i',$ip);
|
|
|
|
|
+ $dbAction->execute();
|
|
|
|
|
+ $dbAction = $db->prepare("SELECT count FROM delist WHERE ip = ?");
|
|
|
|
|
+ $dbAction->bind_param('i',$ip);
|
|
|
|
|
+ $dbAction->execute();
|
|
|
|
|
+ $dbAction->store_result();
|
|
|
|
|
+ $dbAction->bind_result($count);
|
|
|
|
|
+ $dbAction->fetch();
|
|
|
|
|
+ if ($count > 3){
|
|
|
|
|
+ echo "Fehler, ". long2ip($ip) . " wurde zu oft delistet";
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ $dbAction = $db->prepare("DELETE FROM list WHERE ip = ?");
|
|
|
|
|
+ $dbAction->bind_param('i',$ip);
|
|
|
|
|
+ $dbAction->execute();
|
|
|
|
|
+ echo long2ip($ip) . " wurde delistet";
|
|
|
|
|
+ return true;
|
|
|
|
|
+}
|
|
|
|
|
+switch($action) {
|
|
|
|
|
+ case 'delist':
|
|
|
|
|
+ if (checkAdmin($token,$db)){
|
|
|
|
|
+ if(delist(ip2long($ip),$db)){
|
|
|
|
|
+ echo "$ip delisted" . PHP_EOL;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ echo "$ip not delisted" . PHP_EOL;
|
|
|
|
|
+ };
|
|
|
|
|
+ } else {
|
|
|
|
|
+ echo "Admin token $token not registered" . PHP_EOL;
|
|
|
|
|
+ };
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'blacklist':
|
|
|
|
|
+ break;
|
|
|
|
|
+ default:
|
|
|
|
|
+ if (checkToken($token,$db)){
|
|
|
|
|
+ if(set(ip2long($ip),$db)){
|
|
|
|
|
+ echo " inserted $ip" . PHP_EOL;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ echo " fehler" . PHP_EOL;
|
|
|
|
|
+ };
|
|
|
|
|
+ } else {
|
|
|
|
|
+ echo "Client token $token not registered" . PHP_EOL;
|
|
|
|
|
+ };
|
|
|
|
|
+}
|