| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- <?php
- error_reporting(E_ALL);
- $ip = trim($_GET['ip']);
- $token = trim($_GET['token']);
- $action = trim($_GET['action']);
- $db = new mysqli('localhost', 'ban', 'Blubb123-', 'ban');
- if ($db->connect_errno){
- die($db->connect_error);
- }
- $db->set_charset('utf8');
- function checkToken($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){
- echo "Client $desc";
- return true;
- }
- 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) {
- $dbAction = $db->prepare("INSERT IGNORE INTO list VALUES (?)");
- $dbAction->bind_param('i',ip2long($ip));
- return $dbAction->execute();
- }
- function islisted($ip,$db) {
- $dbAction = $db->prepare("SELECT * FROM list WHERE ip = ?");
- $dbAction->bind_param('i',ip2long($ip));
- $dbAction->execute();
- $dbAction->fetch();
- if($dbAction->num_rows() == 0) {
- echo $dbAction->num_rows() . " , " . $ip . " , " . ip2long($ip) . " debug 1\n";
- return false;
- }
- return true;
- }
- function delist($ip,$db) {
- if(!islisted($ip,$db)) {
- echo "debug 2\n";
- return false;
- }
- $dbAction = $db->prepare("INSERT INTO delist (ip) VALUES (?) ON DUPLICATE KEY UPDATE count = count + 1");
- $dbAction->bind_param('i',ip2long($ip));
- $dbAction->execute();
- $dbAction = $db->prepare("SELECT count FROM delist WHERE ip = ?");
- $dbAction->bind_param('i',ip2long($ip));
- $dbAction->execute();
- $dbAction->store_result();
- $dbAction->bind_result($count);
- $dbAction->fetch();
- if ($count > 3){
- echo "Fatal: ". $ip . " delisted to often!" . PHP_EOL;
- return false;
- }
- $dbAction = $db->prepare("DELETE FROM list WHERE ip = ?");
- $dbAction->bind_param('i',ip2long($ip));
- $dbAction->execute();
- return true;
- }
- switch($action) {
- case 'delist':
- if(delist($ip,$db)){
- echo "$ip delisted" . PHP_EOL;
- } else {
- echo "$ip not delisted blubb" . PHP_EOL;
- };
- break;
- case 'blacklist':
- break;
- default:
- if (checkToken($token,$db)){
- if(set($ip,$db)){
- echo " inserted $ip" . PHP_EOL;
- } else {
- echo " fehler" . PHP_EOL;
- };
- } else {
- echo "Client token $token not registered" . PHP_EOL;
- };
- }
|