Page 1 sur 1

PHP + telnet

Posté : 01 févr. 2011, 13:27
par spik32
Bonjour à tous,

C'est bien la première fois que je poste sur un forum, généralement j'arrive à me débrouiller.
Je suis admin réseaux (encore étudiant), pour une migration avec reconfiguration d'un nombre important de switch, je développe une petite interface de config qui permettra de gagner un temps précieux..

J'ouvre une socket en telnet sur les swtch afin d'y écrire une suite commandes. Ça fonctionne très bien.
J'ai juste le problème suivant : quand je passe un nombre important de commandes (via une boucle) j'ai un 'time out' au bout d'un certain temps, alors que le délais de time out de la socket n'est pas dépassé.

Y a t'il une une taille de buffer, ou autre chose que j'ignore ?

Merci à ceux que prendront la peine de me lire et d'éclairer ma lanterne.
@+, Antho

Re: PHP + telnet

Posté : 01 févr. 2011, 14:07
par Mazarini
Bonjour,

A défaut du timeout, c'est peut être le temps d'exécution de PHP qui est trop long.

cf max_execution_time dans PHP.ini

Eventuellement tu peut faire set_time_limit(0) pour être tranquille de ce coté.

Re: PHP + telnet

Posté : 01 févr. 2011, 14:28
par spik32
J'avais déjà configuré le max_execution_time.
J'ai testé le set_time_limit(0) mais rien y fait.
J'ai plutôt l'impression que c'est un problème de mémoire tampon car le script s'arrête toujours à un certain nombre de commandes passées ..

Re: PHP + telnet

Posté : 01 févr. 2011, 14:42
par jojolapine
Bonjour,
Tu peux éventuellement regarder du côté de php et de la configuration memory_limit
Ensuite si tu t’aperçois que ça vient bien de là, tu pourras éventuellement couper ton socket au bout de tant de requête pour le relancer pour la série suivante...?

Re: PHP + telnet

Posté : 01 févr. 2011, 15:03
par spik32
Salut, j'ai essayé c'est toujours pas ça, dommage. =)
Je pourrais éventuellement couper mon socket mais c'est pas terrible. Et j'aimerais bien comprendre ce qu'il se passe.


Script de commandes :
 

else{
    $port_start = $_POST['port_start'];								
    $port_end = $_POST['port_end'];									
    $port_type = $_POST['port_type'];								
    $vlan_list = $_POST['vlan_list'];								
    $i=intval($port_start);											
							
	include('connexion.php');															
	if ($connexion == 'ok'){										
		fwrite($fp, "system-view");									
		fwrite($fp, "\r\n");
														
		while ($i <= $port_end) {									
			fwrite($fp, 'interface '.$port_type.$i.'');
			fwrite($fp, "\r\n");
			fwrite($fp, 'port link-type trunk');
			fwrite($fp, "\r\n");
			fwrite($fp, 'undo port trunk permit vlan all');
			fwrite($fp, "\r\n");
			fwrite($fp, 'port trunk permit vlan '.$vlan_list.'');
			fwrite($fp, "\r\n");
			fwrite($fp, "quit");
			fwrite($fp, "\r\n");
			$i++;													
		}
		include('affichage.php');									
	}							 
}


Script de connexion :

	$ip = $_POST['ip'];												
	
	$port = 23;														
	$id = 'admin';													
	$passwd = '';													
	
	$fp = fsockopen($ip, $port);sleep(1);						
	
	if(!$fp) { 														
		echo 'La connexion telnet au switch '.$ip.' a échoué';		
	}
	else { 															
		fwrite($fp, $id); 									
		fwrite($fp, "\r\n");
		fwrite($fp, $passwd); 
		fwrite($fp, "\r\n");sleep(1);fwrite($fp, "\r\n");
		$connexion ='ok';
		stream_set_timeout($fp, 1); 						
	}

je vous met mon code si jamais vous voyez des erreurs de ma part !
Merci.

Edit : le script s'arrête à la 18 ieme boucle environ. Pour des boucles avec moins de commandes, ça passe tout debout. On dirait vraiment un problème de cache ou quelque chose comme ça .. Étrange

Re: PHP + telnet

Posté : 01 févr. 2011, 16:15
par spik32
C'est bon, force d'acharnement j'ai trouvé.
Je faisait mes fgets dans une boucle affichage que j'appelais en include après avoir passé toutes mes commandes.
En passant mes fgets après chaque commande, ça marche au poil !!

Merci beaucoup de vous êtes penché sur le sujet.
Bonne continuation à vous.
@+

Re: PHP + telnet

Posté : 14 juil. 2011, 00:42
par yasmineRT4
bonjour,
svp esceque vous pouvez me donner le script php qui tu as utilisé pour connecter au équipement réseaux tel que switch via telnet
je suis vrt perdu :cry: merci

Re: PHP + telnet

Posté : 15 juil. 2011, 13:05
par spik32
Bonjour,

Il est juste au dessus.

Re: PHP + telnet

Posté : 11 mai 2012, 00:45
par teasso
Bonjour !!

J'ai crée une interface php qui permet de se connecter à un switch via telnet d'abord j'ai une page authentification qui contient l'adresse ip du switch et le mot de passe avec le port 23 bien sur !! jusqu'à maintenant ça va !!et lorsque l'authentification est faite j'ai fait une redirection vers une autre page qui contient des formulaire pour la configuration tels que hostname et création des vlans ... mon problème c'est que la session ne reste plus activé lorsque la redirection est faites !! ya til une solution svp ??

Re: PHP + telnet

Posté : 12 mai 2012, 12:21
par moogli
Au Pif je dirais qu'il manque la "sauvegarde" du système de session.

Si tu attaque en page web, typiquement le cookIe de session,
Ou le jeton de session dans l'url (souvent appelé id, sessionid etc).

@+