| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- <?php
- error_reporting(E_ALL);
- class db extends mysqli {
- protected $host = 'localhost';
- protected $user = 'ban';
- protected $pass = 'Blubb123-';
- protected $db = 'ban';
- public function __construct($host = 'localhost', $user = null, $pass = null, $db = null) {
- print_r($this);
- @parent::__construct($host, $user, $pass, $db);
- if($this->connect_errno){
- die($this->connect_error);
- }
- }
- }
- $ip = trim($_GET['ip']);
- $token = trim($_GET['token']);
- $action = trim($_GET['action']);
- $db = new db();
- $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 ip FROM list WHERE ip = ?");
- $dbAction->bind_param('i',ip2long($ip));
- $dbAction->execute();
- $dbAction->store_result();
- if($dbAction->num_rows() == 0) {
- return false;
- }
- return true;
- }
- function delistCount($ip,$db) {
- $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();
- return $count;
- }
- function delist($ip,$db) {
- if(!islisted($ip,$db)) {
- return false;
- }
- //check delisting count
- if (delistCount($ip,$db) > 3){
- echo "Fatal: ". $ip . " delisted to often!\n";
- return false;
- }
- //delist ip
- $dbAction = $db->prepare("DELETE FROM list WHERE ip = ?");
- $dbAction->bind_param('i',ip2long($ip));
- $dbAction->execute();
- //update delist count
- $dbAction = $db->prepare("INSERT INTO delist (ip) VALUES (?) ON DUPLICATE KEY UPDATE count = count + 1");
- $dbAction->bind_param('i',ip2long($ip));
- $dbAction->execute();
- return true;
- }
- switch($action) {
- case 'delist':
- if(delist($ip,$db)){
- echo "$ip delisted\n";
- } else {
- echo "$ip not delisted\n";
- };
- break;
- case 'blacklist':
- break;
- case 'whitelist':
- break;
- default:
- if (checkToken($token,$db)){
- if(set($ip,$db)){
- echo " inserted " . $ip ."\n";
- } else {
- echo " fehler\n";
- };
- } else {
- echo "Client token " . $token . " not registered\n";
- };
- }
|