Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- define("PORT", 1311);
- define("DB_HOST", "sql4.cluster1.easy-hebergement.net");
- define("DB_USER", "royalanticheat8");
- define("DB_PASS", "JF1FJz71sE");
- define("DB_NAME", "royalanticheat8");
- /********************************
- * COMMANDE DISPONIBLE POUR LE CLIENT :
- * 'CHECK_STEAM_ID%STEAM_X:X:XXXXX'
- * -> CHECK SI LE CLIENT EST BAN. SI OUI, ON RETOURNE "BAN", SINON "NOTBAN"
- * 'ADD_TO_BANLIST%STEAM_X:X:XXXXX%IP.IP.IP.IP'
- * -> AJOUTE UN MEC EN BAN LISTE, RETOURNE DANS TOUS LES CAS "OK"
- ***********************************/
- $socket = stream_socket_server("udp://0.0.0.0:".PORT, $errno, $errstr, STREAM_SERVER_BIND);
- if (!$socket) {
- die("$errstr ($errno)");
- }
- logMessage("Démarrage du script");
- _printtoscreen("Starting...");
- do {
- $pkt = stream_socket_recvfrom($socket, 1024, 0, $peer);
- $pkt = trim($pkt);
- _printtoscreen("Reçu de $peer : $pkt");
- if(strpos($pkt, "CHECK_STEAM_ID%") !== FALSE)
- {
- $steam_id = substr($pkt,strlen("CHECK_STEAM_ID%"));
- _printtoscreen("Recherche du Steam ID dans la base : ". $steam_id);
- $ISBAN = IsSteamIDBan($steam_id);
- if($ISBAN === TRUE)
- {
- _printtoscreen("Steam ID ".$steam_id." present dans la banlist");
- logMessage("Steam ID ".$steam_id." present dans la banlist");
- stream_socket_sendto($socket, "".$steam_id." BAN", 0, $peer); //Changement, renvoie $STEAMID BAN
- }
- else
- {
- _printtoscreen("Steam ID ".$steam_id." non present dans la banlist");
- stream_socket_sendto($socket, "".$steam_id." NOTBAN", 0, $peer); //Changement, renvoie $STEAMID NOTBAN
- }
- }
- elseif(strpos($pkt,"ADD_TO_BANLIST%") !== FALSE)
- {
- $content = substr($pkt,strlen("ADD_TO_BANLIST%"));
- $parts = explode('%',$content);
- $steam_id = $parts[0];
- $ip = $parts[1];
- _printtoscreen("Ajout du Steam ID ".$steam_id." lié à l'IP ".$ip);
- logMessage("Ajout du Steam ID ".$steam_id." lié à l'IP ".$ip);
- AddToBanList($steam_id, $ip);
- stream_socket_sendto($socket, "OK", 0, $peer);
- }
- else
- {
- _printtoscreen("Commande inconnnue");
- }
- } while ($pkt !== false);
- function IsSteamIDBan($steam_ID)
- {
- try{
- $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
- $pdo = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PASS);
- $requete = $pdo->prepare('SELECT COUNT(*) AS Nombre FROM banlist WHERE steamid = :steamid');
- $requete->bindValue(':steamid', $steam_ID);
- $requete->execute();
- $donnees = $requete->fetch();
- $nombre = $donnees['Nombre'];
- $requete->closeCursor();
- if($nombre < 1){
- return false;
- }
- else{
- return true;
- }
- }
- catch(Exception $e){
- $message = $e->getMessage();
- _printtoscreen($message);
- return false;
- }
- }
- function AddToBanList($steam_id,$ip)
- {
- try{
- $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
- $pdo = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PASS);
- $requete = $pdo->prepare('INSERT INTO banlist SET
- steamid = :steamid,
- ip = :ip');
- $requete->bindValue(':steamid', $steam_id);
- $requete->bindValue(':ip', $ip);
- $requete->execute();
- }
- catch(Exception $e){
- $errorcode = $e->getCode();
- if($errorcode != 23000){ // 23000 = doublon SQL. On ne va pas logguer betement les erreurs de doublon pour economiser du cpu
- $message = $e->getMessage();
- _printtoscreen($message);
- logMessage($message);
- }
- }
- }
- function _printtoscreen($message)
- {
- echo date("Y-m-d H:i:s"),"\t",$message,"\n";
- }
- function logMessage($message){
- $handle = fopen("/home/teol/banlist/logs/logs.txt", "a+");
- $date = date("Y-m-d H:i:s");
- fwrite($handle, "$date - $message\r\n");
- fwrite($handle, "===============\r\n");
- fclose($handle);
- }
Advertisement
Add Comment
Please, Sign In to add comment