Erreur 111 rcon Minecraft
erimen
Messages postés
521
Date d'inscription
Statut
Membre
Dernière intervention
-
erimen Messages postés 521 Date d'inscription Statut Membre Dernière intervention -
erimen Messages postés 521 Date d'inscription Statut Membre Dernière intervention -
Salut,
J'essaye d'envoyer des commandes à mon serveur Minecraft via mon site.
Le serveur web et le serveur Minecraft sont hébergés sur la même machine et c'est un serveur dédié donc full accès.
Le port RCon est 25566 et j'ai définis un mot de passe que je définirai par "mdp" ici.
J'ai donc trouvé deux fichiers en fouillant sur le net mais j'ai une erreur : "Unable to open socket: Connection refused (111)"
Voici le contenu des deux fichiers :
Fichier que j'exécute :
Contenu de "rcon.php"
Voilà, si vous avez besoin de plus d'info n'hésitez pas à demander ;)
Et merci déjà à ceux qui prendront la peine de se pencher sur mon problème :)
PS :
Dans server.properties j'ai :
Et j'ai ouvert les ports comme suit :
J'essaye d'envoyer des commandes à mon serveur Minecraft via mon site.
Le serveur web et le serveur Minecraft sont hébergés sur la même machine et c'est un serveur dédié donc full accès.
Le port RCon est 25566 et j'ai définis un mot de passe que je définirai par "mdp" ici.
J'ai donc trouvé deux fichiers en fouillant sur le net mais j'ai une erreur : "Unable to open socket: Connection refused (111)"
Voici le contenu des deux fichiers :
Fichier que j'exécute :
<?php include_once("rcon.php"); // Extend the rcon class to tweak it for minecraft. class minecraftRcon extends rcon{ function mcSendCommand($Command){ $this->_Write(SERVERDATA_EXECCOMMAND,$Command,''); } function mcRconCommand($Command){ $this->mcSendcommand($Command); $ret = $this->Read(); return $ret[$this->_Id]['S1']; } } // Server connection varialbes $server = "localhost"; $rconPort = 25566; $rconPass = "mdp"; // Connect to the server $r = new minecraftRcon($server, $rconPort, $rconPass); // Authenticate, and if so, execute command(s) if ( $r->Auth() ) { echo "Authenticated !<br>"; // Send a command var_dump($r->mcRconCommand('say Ca marche !')); }else{ echo "Authentification failed !<br>"; } ?>
Contenu de "rcon.php"
<?php /* Basic CS:S Rcon class by Freman. (V1.00) ---------------------------------------------- Ok, it's a completely working class now with with multi-packet responses Contact: printf("%s%s%s%s%s%s%s%s%s%d%s%s%s","rc","on",chr(46),"cl","ass",chr(64),"pri","ya",chr(46),2,"y",chr(46),"net") Behaviour I've noticed: rcon is not returning the packet id. */ define("SERVERDATA_EXECCOMMAND",2); define("SERVERDATA_AUTH",3); class RCon { var $Password = "mdp"; var $Host = "127.0.0.1"; var $Port = 25566; var $_Sock = null; var $_Id = 0; function RCon ($Host,$Port,$Password) { $this->Password = $Password; $this->Host = $Host; $this->Port = $Port; $this->_Sock = @fsockopen($this->Host,$this->Port, $errno, $errstr, 30) or die("Unable to open socket: $errstr ($errno)\n"); $this->_Set_Timeout($this->_Sock,2,500); } function Auth () { $PackID = $this->_Write(SERVERDATA_AUTH,$this->Password); // Real response (id: -1 = failure) $ret = $this->_PacketRead(); if ($ret[1]['id'] == -1) { die("Authentication Failure\n"); } } function _Set_Timeout(&$res,$s,$m=0) { if (version_compare(phpversion(),'4.3.0','<')) { return socket_set_timeout($res,$s,$m); } return stream_set_timeout($res,$s,$m); } function _Write($cmd, $s1='', $s2='') { // Get and increment the packet id $id = ++$this->_Id; // Put our packet together $data = pack("VV",$id,$cmd).$s1.chr(0).$s2.chr(0); // Prefix the packet size $data = pack("V",strlen($data)).$data; // Send packet fwrite($this->_Sock,$data,strlen($data)); // In case we want it later we'll return the packet id return $id; } function _PacketRead() { //Declare the return array $retarray = array(); //Fetch the packet size while ($size = @fread($this->_Sock,4)) { $size = unpack('V1Size',$size); //Work around valve breaking the protocol if ($size["Size"] > 4096) { //pad with 8 nulls $packet = "\x00\x00\x00\x00\x00\x00\x00\x00".fread($this->_Sock,4096); } else { //Read the packet back $packet = fread($this->_Sock,$size["Size"]); } array_push($retarray,unpack("V1ID/V1Response/a*S1/a*S2",$packet)); } return $retarray; } function Read() { $Packets = $this->_PacketRead(); foreach($Packets as $pack) { if (isset($ret[$pack['ID']])) { $ret[$pack['ID']]['S1'] .= $pack['S1']; $ret[$pack['ID']]['S2'] .= $pack['S1']; } else { $ret[$pack['ID']] = array( 'Response' => $pack['Response'], 'S1' => $pack['S1'], 'S2' => $pack['S2'], ); } } return $ret; } function sendCommand($Command) { $Command = '"'.trim(str_replace(' ','" "', $Command)).'"'; $this->_Write(SERVERDATA_EXECCOMMAND,$Command,''); } function rconCommand($Command) { $this->sendcommand($Command); $ret = $this->Read(); //ATM: Source servers don't return the request id, but if they fix this the code below should read as // return $ret[$this->_Id]['S1']; return $ret[0]['S1']; } } ?>
Voilà, si vous avez besoin de plus d'info n'hésitez pas à demander ;)
Et merci déjà à ceux qui prendront la peine de se pencher sur mon problème :)
PS :
Dans server.properties j'ai :
enable-rcon=true
rcon.port=25566
rcon.password=mdp
Et j'ai ouvert les ports comme suit :
iptables -I INPUT -p TCP --dport 25566 -j ACCEPT
iptables -I INPUT -p UDP --dport 25566 -j ACCEPT
iptables -I OUTPUT -p TCP --dport 25566 -j ACCEPT
iptables -I OUTPUT -p UDP --dport 25566 -j ACCEPT
A voir également:
- Erreur 111 rcon Minecraft
- Minecraft gratuit - Télécharger - Stratégie
- Afficher fps minecraft - Forum Minecraft
- Erreur t32 ✓ - Forum Livebox
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- Erreur 0x80070643 - Accueil - Windows
1 réponse
Problème résolu. Voir https://openclassrooms.com/forum/sujet/erreur-rcon-111#message-85616454, là au moins on m'a vraiment aidé.