1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| <html>
<head>
<title>Bienvenue</title>
</head>
<body>
<h1>Ceci est une page de test de connexion à un switch en Telnet</h1>
<?php
$switch = '192.168.2.12'; //IP de mon switch
$port = 23; // Port correspondant au Telnet
$fp = fsockopen($switch,$port);
$i = 1; // Voir utilisation plus bas dans la boucle while
if(!$fp)
{
echo 'La connexion telnet au switch : ' .$switch. 'a échoué';
}
else
{
fwrite($fp, "IciMonPassword\r\n"); // le cisco vérifie l'accès
fwrite($fp, "enable\r\n"); // activation des commandes telnet
fwrite($fp, "IciMonPassword\r\n"); // vérification des droits
fwrite($fp, "show running-config\r\n");
stream_set_timeout($fp, 2); // 2 secondes si je ne me suis pas trompé dans la syntaxe
while($i<45) //permet (si j'ai compris) d'afficher les 45 lignes qui vont suivre
//note : l'exemple avec <300 sur le tutoriel que j'ai mentionné
{ //me génère un time exeeded (30 sec) :(
$i++; //incrémentation
$line = fgets($fp, 1024); //capture les caractères de la ligne
echo $line.''; //affiche cette chaine de caractères
if(preg_match('!--More--!i', $line)) //Censé détecter les "More" car un switch
{ //n'affiche que 15 lignes à la fois
fwrite($fp, "\r\n");//simule l'appui sur Entrée pour faire défiler les commandes
}
$info = stream_get_meta_data($fp); //retourne les infos sur le flux
//notemment le timed_out
if($info['timed_out'])
{
echo 'délai de connexion dépassé';
}
}
}
?>
</body>
</html> |
Partager