Page 1 sur 2
Telnet et PHP
Posté : 28 oct. 2008, 14:14
par Zoro63
Bonjour à tous,
Je voudrais un script en php qui m'ouvre une console et qui me tape la commande " telnet $host "
La variable $host sera l'adresse IP de la machine à contacter.
<?
$host=$_GET["ip"];
$system = ini_get('system');
system("telnet $host");
?>
Pour votre aide merci. Désolés pour ne pas avoir poster mon script comme il marchait pas j'ai supposé que ça en valé pas la peine...
Posté : 28 oct. 2008, 14:26
par Truc
Modération :
PHPFrance n'est pas un site de distribution de scripts gratuits,
ni de débuggage de scripts téléchargés et utilisés sans compréhension.
Merci de prendre le temps de lire les règlements.
Posté : 31 oct. 2008, 15:03
par Zoro63
J'ai créé plus ou moins script mais j'ai encore un petit souci.
En local sur mon poste tout marche bien le script me lance le .bat et effectue la connexion en Telnet.
Mai lorsque que je le fais sur un ordinateur distant qui accéde à ma page Web, le script s'éxecute pas sur son poste mais sur le mien. Est-ce que quelqu'un pourrait m'aider.
$host=$_GET["ip"];
$shell= fopen("C:\CMD.bat","w+" ); //On crée ou on ouvre un fichier .bat
$line="telnet ".$host."";
fwrite($shell,$line); //on ecrit ds ce fichier bat la ligne du dessus
$line2="\n"."exit";// on va a la ligne et on tape la commande pour fermer la fenetre dos
fwrite($shell,$line2);
fclose($shell); //on ferme le fichier bat
exec("start C:\CMD.bat" ); // on exécute ce fichier bat
Pour votre aide merci.
Posté : 31 oct. 2008, 19:57
par chrislabricole
Si dans cette page, tu mets ton IP et que cette page tu l'envoi sur un serveur distant (obligatoirement une machine Windows puisque tu parles de "C:\..."), c'est normal, sinon faut que tu mettes "localhost"

Posté : 01 nov. 2008, 00:33
par Berzemus
En fait, Zoro64, tu cherches à faire quoi ?
Peut-être peut on te conseiller sur une autre méthode plus efficace..
Posté : 03 nov. 2008, 09:57
par Zoro63
Désolés pour la réponse tardive
Si dans cette page, tu mets ton IP et que cette page tu l'envoi sur un serveur distant (obligatoirement une machine Windows puisque tu parles de "C:\..."), c'est normal, sinon faut que tu mettes "localhost"

J'ai écris quelque chose dans ce style.
$shell= fopen("http://localhost/CMD.bat","w+" )
Mais ça marche toujours pas je sais pas trop comment faire avec le localhost. Est-ce que tu pourrais m'éclairer.
En fait, Zoro64, tu cherches à faire quoi ?
Peut-être peut on te conseiller sur une autre méthode plus efficace..
Je souhaite lorsque un utilisateur accéde à ma page PHP qu'une connexion s'établisse en Telnet avec l'adresse IP demandé par celui-ci.
Posté : 03 nov. 2008, 11:18
par Berzemus
Donc, l'utilisateur vient sur le site, entre une adresse IP, et se retrouve alors avec une connexion telnet avec le poste correspondant a l'IP qu'il à choisi ?
Comment être sur que le Telnet soit ouvert sur le poste demandé par le visiteur ?
Posté : 03 nov. 2008, 13:30
par Zoro63
Il ne se connecte pas un poste mais à un élément réseau. Donc pas besoin de vérifier si Telnet soit ouvert dessus. Mon souci comme je l'ai dis au dessus, en local tout marche bien. Mais si une personne accéde à mon site la console Telnet s'ouvre sur le serveur et non sur son poste à lui.
Posté : 03 nov. 2008, 13:37
par Sékiltoyai
Mais si une personne accéde à mon site la console Telnet s'ouvre sur le serveur et non sur son poste à lui.
Euh, c'est totalement normal ça. Si tu exécutes le script sur le serveur, il s'exécutera sur le serveur…
Posté : 03 nov. 2008, 13:52
par Zoro63
Mais si une personne accéde à mon site la console Telnet s'ouvre sur le serveur et non sur son poste à lui.
Euh, c'est totalement normal ça. Si tu exécutes le script sur le serveur, il s'exécutera sur le serveur…
Merci je le savais, mon problème est là c'est pourquoi je vous demande de l'aide. Comment je peux faire pour qu'il s'éxecute sur le poste qui accède à mon site.
Posté : 03 nov. 2008, 14:04
par Sékiltoyai
Mais si une personne accéde à mon site la console Telnet s'ouvre sur le serveur et non sur son poste à lui.
Euh, c'est totalement normal ça. Si tu exécutes le script sur le serveur, il s'exécutera sur le serveur…
Merci je le savais, mon problème est là c'est pourquoi je vous demande de l'aide. Comment je peux faire pour qu'il s'éxecute sur le poste qui accède à mon site.
Ce n'est pas possible… C'est le principe de client-serveur. Tu n'as aucun contrôle de ce qu'il se passe chez le client. Et en plus le client peut très bien être sur un système quelconque…
Posté : 03 nov. 2008, 14:20
par Zoro63
Je suis dans un réseau local, le site sera en intranet. Donc si je met en partage un dossier est-ce que se sera possible.
$host=$_GET["ip"];
$shell= fopen("//10.63.10.120/transit/CMD.bat","w+" ); //On crée ou on ouvre un fichier .bat
$line="telnet ".$host."";
fwrite($shell,$line); //on ecrit ds ce fichier bat la ligne du dessus
$line2="\n"."exit";// on va a la ligne et on tape la commande pour fermer la fenetre dos
fwrite($shell,$line2);
fclose($shell); //on ferme le fichier bat
exec("start //10.63.10.120/transit/CMD.bat" ); // on exécute ce fichier bat
Mon code cré le fichier dans le partage mais par la suite n'arrive pas à l'ouvrir que ce soit en local ou à distance.
Posté : 03 nov. 2008, 18:55
par Calimero
Je ne pense pas que la solution à ton problème soit réalisable directement en PHP. Rien ne permet en effet à PHP d'éxécuter des processus sur des machines tierces. Si tu veux réellement faire ça, il va te falloir t'appuyer sur une autre technologie (par exemple, sous Linux, il y a SSH pour faire ce genre de choses).
Posté : 04 nov. 2008, 02:08
par Sékiltoyai
Je suis dans un réseau local, le site sera en intranet. Donc si je met en partage un dossier est-ce que se sera possible.
$host=$_GET["ip"];
$shell= fopen("//10.63.10.120/transit/CMD.bat","w+" ); //On crée ou on ouvre un fichier .bat
$line="telnet ".$host."";
fwrite($shell,$line); //on ecrit ds ce fichier bat la ligne du dessus
$line2="\n"."exit";// on va a la ligne et on tape la commande pour fermer la fenetre dos
fwrite($shell,$line2);
fclose($shell); //on ferme le fichier bat
exec("start //10.63.10.120/transit/CMD.bat" ); // on exécute ce fichier bat
Mon code cré le fichier dans le partage mais par la suite n'arrive pas à l'ouvrir que ce soit en local ou à distance.
Non, non, non, et non…
Quand bien même aurait-il réussi à l'exécuté, il aurait exécuté le fichier //10.63.10.120/transit/CMD.bat sur le serveur. Il faut vraiment que tu apprennes le concept de client-serveur. Tout ce que tu exécutes, tu le fais sur le serveur. Si tu veux exécuter sur une autre machine, tu dois te connecter sur cette machine et la controler pour exécuter la commande.
Posté : 04 nov. 2008, 10:07
par Zoro63
Ok merci quand même j'espérai qu'il est une solution.