A voir également:
- Probleme avec shell
- Classic shell windows 10 français - Télécharger - Personnalisation
- Efi shell - Forum Windows 10
- Efi shell version 2.31 - Forum Programmation
- Secure shell - Télécharger - Divers Web & Internet
- Retour à la ligne shell ✓ - Forum Shell
13 réponses
lecube
Messages postés
304
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
13 avril 2010
54
13 août 2009 à 07:32
13 août 2009 à 07:32
Bonjour,
D'abord ton titre est traite ... Je m'attendais a du ksh ou du sh ... Alors j'ai verifie la definition de shell .. Et ca correspond. Hop, je suis moins c{@{ :-P
Pour ton probleme, tes erreurs sont surement generes car $telnet n'est pas bon. Le sockopen ne s'est pas effectue. Tu devrais faire un code stype :
if (!$telnet) {
echo "$errstr ($errno)<br />\n";
} else {
fgets($telnet,1024);
....
}
Ca retira toutes les erreurs d'une part et cela te sortira l'erreur de sockopen.
Dit nous ce que cela te sort maintenant ...
D'abord ton titre est traite ... Je m'attendais a du ksh ou du sh ... Alors j'ai verifie la definition de shell .. Et ca correspond. Hop, je suis moins c{@{ :-P
Pour ton probleme, tes erreurs sont surement generes car $telnet n'est pas bon. Le sockopen ne s'est pas effectue. Tu devrais faire un code stype :
if (!$telnet) {
echo "$errstr ($errno)<br />\n";
} else {
fgets($telnet,1024);
....
}
Ca retira toutes les erreurs d'une part et cela te sortira l'erreur de sockopen.
Dit nous ce que cela te sort maintenant ...
Hummm aucun erreur ne s'affiche, et bizarrement le code fonctionne...
comment ? Aucune idée, mais malgré qu'il n'y ait plus d'erreur, il ne fonctionne pas pour autant :/
J'suis encore plus largué qu'avant ><
comment ? Aucune idée, mais malgré qu'il n'y ait plus d'erreur, il ne fonctionne pas pour autant :/
J'suis encore plus largué qu'avant ><
Désolé du double poste, mais voici ce que me retourne chaque variable en echo :
$errno => 0
$errstr =>
$telnet => Resource id #2
$errno => 0
$errstr =>
$telnet => Resource id #2
lecube
Messages postés
304
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
13 avril 2010
54
13 août 2009 à 14:09
13 août 2009 à 14:09
Extrait
Curieux que errstr ne contienne rien .. :-(
Si l'appel échoue, fsockopen retourne FALSE , et si les options errno et errstr ont été fournies, elles contiennent désormais les raisons de l'échec. Si l'erreur retournée est 0 et que la fonction retourne FALSE , c'est une indication d'erreur. C'est probablement dû à une erreur d'initialisation de la socket.
Curieux que errstr ne contienne rien .. :-(
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
En gros ip + port okay.
Mais bizarrement que je change le passe ou l'username on y mettant un truc bidon, l'execution se passe normalement aucune erreur quoi, donc j'dois avoir une couille autre part que dans mon script :/
Mais bizarrement que je change le passe ou l'username on y mettant un truc bidon, l'execution se passe normalement aucune erreur quoi, donc j'dois avoir une couille autre part que dans mon script :/
lecube
Messages postés
304
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
13 avril 2010
54
13 août 2009 à 14:49
13 août 2009 à 14:49
Non, ca c'est plutot logique ... Si on considere que fsockopen ne fonctionne pas ... Si tu as mis le if que je t'ai donne, on ne passe meme pas dans les fputs et fgets. Non ?
Tu pourrais remettre le code actualise ?
Tu pourrais remettre le code actualise ?
j'ai mis ce code moi :
Et aucune erreur, il passe le if et me marque que l'item est envoyé, donc pour moi fsockopen fonctionne mais ça viendrait d'autre part :/
Et j'ai testé de mettre des ident bidon, ce gland fait pas la difference, il passe le if mais me marque que l'item est envoyé :x
$shell = Array( 'host' => "localhost", //Adresse du serveur 'port' => 3443, //Port utiliser par la console 'user' => "root", //Compte MJ/ADIM du jeu 'password' => "pass" //Mot de passe du compte ); $telnet->Connect($shell['host'], $shell['user'], $shell['password']); if ($telnet) { fgets($telnet,1024); fputs($telnet, "USER ".$shell['user']."\n"); sleep(1); fputs($telnet, "PASS ".$shell['password']."\n"); sleep(1); fgets($telnet,1024); sleep(1); fputs($telnet, "senditems personnage \"message\" \"test\" $value\n"); fclose($telnet); echo '<p>L\'objet a été envoyé au personnage</p>'; } else { echo '<p>Erreur</p>'; }
Et aucune erreur, il passe le if et me marque que l'item est envoyé, donc pour moi fsockopen fonctionne mais ça viendrait d'autre part :/
Et j'ai testé de mettre des ident bidon, ce gland fait pas la difference, il passe le if mais me marque que l'item est envoyé :x
lecube
Messages postés
304
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
13 avril 2010
54
13 août 2009 à 15:40
13 août 2009 à 15:40
Tu m'embrouilles ... t'es passe d'un probleme fsockopen a un connect ... Sans declaration au prealable de la classe utilise ?
$telnet, c'est quoi ?
$telnet, c'est quoi ?
Merde, désolé j'ai copier le mauvais code ><
$shell = Array(
'host' => "localhost", //Adresse du serveur
'port' => 3443, //Port utiliser par la console
'user' => "root", //Compte MJ/ADIM du jeu
'password' => "pass" //Mot de passe du compte
);
$telnet = @fsockopen($shell['host'], $shell['port'], $errno, $errstr, 3);
if ($telnet)
{
fgets($telnet,1024);
fputs($telnet, "USER ".$shell['user']."\n");
sleep(1);
fputs($telnet, "PASS ".$shell['password']."\n");
sleep(1);
fgets($telnet,1024);
sleep(1);
fputs($telnet, "senditems personnage \"Titre\" \"Texte\" ID\n");
fclose($telnet);
echo '<p>L\'objet a été envoyé au personnage</p>';
}
else
{
echo '<p>Erreur</p>';
}
?>
Et merci de tes réponse quand même =)
$shell = Array(
'host' => "localhost", //Adresse du serveur
'port' => 3443, //Port utiliser par la console
'user' => "root", //Compte MJ/ADIM du jeu
'password' => "pass" //Mot de passe du compte
);
$telnet = @fsockopen($shell['host'], $shell['port'], $errno, $errstr, 3);
if ($telnet)
{
fgets($telnet,1024);
fputs($telnet, "USER ".$shell['user']."\n");
sleep(1);
fputs($telnet, "PASS ".$shell['password']."\n");
sleep(1);
fgets($telnet,1024);
sleep(1);
fputs($telnet, "senditems personnage \"Titre\" \"Texte\" ID\n");
fclose($telnet);
echo '<p>L\'objet a été envoyé au personnage</p>';
}
else
{
echo '<p>Erreur</p>';
}
?>
Et merci de tes réponse quand même =)
lecube
Messages postés
304
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
13 avril 2010
54
13 août 2009 à 19:30
13 août 2009 à 19:30
Si je resume, tu as le message "L\'objet a été envoyé au personnage" qui s'affiche MAIS le senditems n'a pas été émis sur le port de ton localhost .C'est juste ?
En gros c'est ça, tout ce passe comme normalement, mais le senditem n'est pas exécute.
Et meme en changeant les ident par n'importe quoi, aucune erreur ne s'afficher, j'comprend rien ><
Et meme en changeant les ident par n'importe quoi, aucune erreur ne s'afficher, j'comprend rien ><
lecube
Messages postés
304
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
13 avril 2010
54
13 août 2009 à 19:40
13 août 2009 à 19:40
Connais tu WireShark ? Cet outil OpenSource ( je travaille avec un des plus important contributeur ... ), il permet d'ecouter tous les flux sur un reseau. Je te conseille de l'installer et d'ecouter le port 3443 de ton PC (localhost). Il faut qu'on sache si c'est ton code qui envoie rien ( et la j'en doute) ou si c'est la console qui n'arrive pas à interpreter ton message. Si tu vois ton message sur Wireshark, ce sera le dernier cas et la, je ne pourrais plus t'aider ;-P