[..] Problème TCPConnect sur Switch
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[..] Problème TCPConnect sur Switch
Bonjour à tous,
Tout d'abord, je vais présenter un peu le contexte.
Je travaille sur un projet qui consiste à automatiser la sauvegarde des configurations de Switch.
Je possède plusieurs modèles d'équipements, cependant je rencontre un soucis avec l'un d'eux.
Lorsque je me connecte avec putty en Telnet (port 23) sur l'équipement, pour lancer manuellement la sauvegarde, tout fonctionne, je reçois bien ma configuration sur mon tftp etc.
Je réalise bien sur un TCPConnect sur les équipements (sur le port 23). Je "vérifie" que la connexion est établie avec un TCPRecv, où je vois apparaître les infos notamment la demande du login (Login : ). J'utilise la commande TCPSend pour envoyer les commandes de sauvegardes sur les équipements.
Sur le modèle de switch ne fonctionnant pas, le TCPRecv ne me retourne rien. Est-ce un problème de TCPConnect, un blocage au niveau matériel (Donc le Switch) ? Si oui pourquoi cela fonctionne t-il avec putty ?
J'ai activé le SSH (port 22) sur cet équipement pour tester, voir s'il y avait une différence. Le problème reste le même
Avez-vous une idée ?
Si vous avez des questions, ou besoin d'informations plus précises pour comprendre mon soucis, n'hésitez pas !
Merci d'avance
Tout d'abord, je vais présenter un peu le contexte.
Je travaille sur un projet qui consiste à automatiser la sauvegarde des configurations de Switch.
Je possède plusieurs modèles d'équipements, cependant je rencontre un soucis avec l'un d'eux.
Lorsque je me connecte avec putty en Telnet (port 23) sur l'équipement, pour lancer manuellement la sauvegarde, tout fonctionne, je reçois bien ma configuration sur mon tftp etc.
Je réalise bien sur un TCPConnect sur les équipements (sur le port 23). Je "vérifie" que la connexion est établie avec un TCPRecv, où je vois apparaître les infos notamment la demande du login (Login : ). J'utilise la commande TCPSend pour envoyer les commandes de sauvegardes sur les équipements.
Sur le modèle de switch ne fonctionnant pas, le TCPRecv ne me retourne rien. Est-ce un problème de TCPConnect, un blocage au niveau matériel (Donc le Switch) ? Si oui pourquoi cela fonctionne t-il avec putty ?
J'ai activé le SSH (port 22) sur cet équipement pour tester, voir s'il y avait une différence. Le problème reste le même
Avez-vous une idée ?
Si vous avez des questions, ou besoin d'informations plus précises pour comprendre mon soucis, n'hésitez pas !
Merci d'avance
- Tlem
- Site Admin

- Messages : 11830
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Problème TCPConnect sur Switch
Lorsque vous vous connectez à l'équipement avec :Quel est la valeur de retour ?
Code : Tout sélectionner
TCPConnect (IPAddr, port)Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: [..] Problème TCPConnect sur Switch
Lorsque j'utilise le :
Je récupère bien un numéro de socket (supérieur à 1000) et non pas -1 avec un @error
Code : Tout sélectionner
TCPConnect (IPAddr, port)- Tlem
- Site Admin

- Messages : 11830
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Problème TCPConnect sur Switch
Dans l'aide de la fonction, TCPRecv(), avez vous vu ceci :
Je pense que le mieux est de forcer le mode binaire et d'utiliser BinaryToString() pour récupérer le texte en clair.Remarks
For backwards compatibility reasons this function will try to return strings by default. If null (0x00) characters are received then the return value will be a binary type.
To force the function to always return binary data (the most sensible option) then use the "flag" parameter set to 1.
If Unicode strings need to be transmitted they must be encoded/decoded with StringToBinary()/BinaryToString().
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: [..] Problème TCPConnect sur Switch
Je vais vous présenter les résultats de plusieurs tests :



J'ai aussi une question concernant le TCPSend. Sur un équipement je dois effectuer un Ctrl+y pour saisir ensuite le login et mot de passe. J'ai vu qu'il était possible de le faire avec un :
J'ai donc fait la fonction de sauvegarde de cet équipement avec des Send, seulement j'aimerais si c'est possible, le faire avec un TCPSend. Et je ne trouve pas la solution, j'ai cherché du côté du BinaryToString en essayant d'envoyer une commande comme celle-ci :
Mais ça ne fonctionne pas. Pouvez-vous me dire si c'est réalisable ?
Merci
Code : Tout sélectionner
$connect=TCPConnect($aIP[$i],23)
$a=TCPRecv($connect, 1024,1)
Msgbox(0,"Test",BinaryToString($a,1)) Code : Tout sélectionner
$connect=TCPConnect($aIP[$i],23)
$a=TCPRecv($connect, 1024,1)
Msgbox(0,"Test",BinaryToString($a,4)) Code : Tout sélectionner
$connect=TCPConnect($aIP[$i],23)
$a=TCPRecv($connect, 1024,1)
Msgbox(0,"Test",$a) J'ai aussi une question concernant le TCPSend. Sur un équipement je dois effectuer un Ctrl+y pour saisir ensuite le login et mot de passe. J'ai vu qu'il était possible de le faire avec un :
Code : Tout sélectionner
Send("^y")Code : Tout sélectionner
TCPSend($connect,BinaryToString(00011001))Merci
- Tlem
- Site Admin

- Messages : 11830
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Problème TCPConnect sur Switch
Que vous retourne ceci :
Code : Tout sélectionner
$connect=TCPConnect($aIP[$i],23)
$a=TCPRecv($connect, 1024,0)
Msgbox(0,"Test",$a)Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: [..] Problème TCPConnect sur Switch
Le code me retourne ceci :

(qui est la même chose qu'avec ce code)
(qui est la même chose qu'avec ce code)
Code : Tout sélectionner
$connect=TCPConnect($aIP[$i],23)
$a=TCPRecv($connect, 1024,1)
Msgbox(0,"Test",BinaryToString($a,1))- Tlem
- Site Admin

- Messages : 11830
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Problème TCPConnect sur Switch
Et si vous le faites en Telnet direct, qu'est qui est affiché sur l'écran d'accueil (une capture de fenêtre serait bien) ?
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
- Jerome
- Niveau 9

- Messages : 661
- Enregistré le : mar. 07 avr. 2009 08:35
- Localisation : Picardie
- Status : Hors ligne
Re: [..] Problème TCPConnect sur Switch
Coucou,
Aussi la marque / model du switch en question ?
Jérôme
Aussi la marque / model du switch en question ?
Jérôme
Re: [..] Problème TCPConnect sur Switch
Je vous poste un screen d'une fenêtre Telnet dès mardi, pour l'instant Week-End 
Concernant le modèle et la marque, il s'agit d'un Switch X900 de la marque Allied Telesis
Merci.
PS : Une idée concernant ma question posée dans une réponse plus haute ? (un Ctrl+y avec un TCPSend)
Concernant le modèle et la marque, il s'agit d'un Switch X900 de la marque Allied Telesis
Merci.
PS : Une idée concernant ma question posée dans une réponse plus haute ? (un Ctrl+y avec un TCPSend)
Re: [..] Problème TCPConnect sur Switch
Personne aurait une petite idée
? Je suis un peu (beaucoup d'ailleurs) bloqué actuellement ='(
- Tlem
- Site Admin

- Messages : 11830
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Problème TCPConnect sur Switch
Hummm, là comme ça, je ne vois pas vraiment.
D'après votre capture, la première chaine en retour du switch, devrait être :
Donc, j'avoue ne pas avoir de réponse à vous donner.
D'après votre capture, la première chaine en retour du switch, devrait être :
Or au mieux, en binaire, nous avont :SW_EFTC841820_RGI_01 login:
Et là on est loin du compte !!!0xFFFD18FFFD20FFFD23FFFD27
Donc, j'avoue ne pas avoir de réponse à vous donner.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
- sksbir
- Niveau 7

- Messages : 384
- Enregistré le : lun. 26 oct. 2009 17:57
- Localisation : Lyon
- Status : Hors ligne
Re: [..] Problème TCPConnect sur Switch
bonjour
Petite idée qui ne vaut sans doute pas grand chose : essayer de discuter avec votre équipement à l'aide de putty et/ou de teraterm ( des emulateurs telnet ) .
Ces programmes vont peut-être être plus bavard sur le type de session ouverte, et ça permettra ensuite de savoir comment piloter ça avec autoit.
Sinon, teraterm possède son propre outils de scripting assez simple à mettre en oeuvre ( création de macro )
Petite idée qui ne vaut sans doute pas grand chose : essayer de discuter avec votre équipement à l'aide de putty et/ou de teraterm ( des emulateurs telnet ) .
Ces programmes vont peut-être être plus bavard sur le type de session ouverte, et ça permettra ensuite de savoir comment piloter ça avec autoit.
Sinon, teraterm possède son propre outils de scripting assez simple à mettre en oeuvre ( création de macro )
Re: [..] Problème TCPConnect sur Switch
J'utilise principalement Putty pour me connecter aux équipements. Je me connecte donc sur le port 23 (Telnet) et tout fonctionne correctement. Donc mon programme Autoit, je me connecte sur le même port. J'avoue que moi aussi je ne comprends pas. Le type de session est donc (je suppose) le même.
Désolé de me rabattre là-dessus mais est-il possible de réaliser un envoi de la commande Ctrl+Y via un TCPSend ?
(Question que personne n'a traitée.)
Je vous remercie
Désolé de me rabattre là-dessus mais est-il possible de réaliser un envoi de la commande Ctrl+Y via un TCPSend ?
(Question que personne n'a traitée.)
Je vous remercie
- Tlem
- Site Admin

- Messages : 11830
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Problème TCPConnect sur Switch
TCPSend ne vous enverra que des données vers le port d'une machine. En aucun cas vous ne pouvez envoyer des commandes clavier sans une interface.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
- sksbir
- Niveau 7

- Messages : 384
- Enregistré le : lun. 26 oct. 2009 17:57
- Localisation : Lyon
- Status : Hors ligne
Re: [..] Problème TCPConnect sur Switch
le protocole telnet est plus compliqué que juste envoyer et recevoir des caractères en TCP.
Déjà, sur teraterm, on peut choisir quel type de terminal on veut émuler : VT100, VT220, wyse,etc... c'est donc forcément qu'il y a discussion sur la base d'un protocole pour que le serveur connaisse les possibilités de fonctionnement du terminal et n'envoie pas par exemple des codes semi-graphique à un terminal incapable des les interpréter.
C'est aussi pour ça que parfois, on peut utiliser les touches de fonctions et parfois, faut ruser avec <ESC>+x
Je pense que votre serveur rétif à toute discussion avec autoit part du principe que le terminal qui refuse de discuter les questions protocolaires est un terminal évolué, alors que les autres serveurs qui fonctionnent avec autoit utilisent par défaut un terminal très basique (genre VT100 ) ce qui rend l'interprétation du code envoyé/reçu possible avec autoit.
après une petite recherche, j'ai trouvé ça : http://www.commentcamarche.net/contents ... elnet.php3
Déjà, sur teraterm, on peut choisir quel type de terminal on veut émuler : VT100, VT220, wyse,etc... c'est donc forcément qu'il y a discussion sur la base d'un protocole pour que le serveur connaisse les possibilités de fonctionnement du terminal et n'envoie pas par exemple des codes semi-graphique à un terminal incapable des les interpréter.
C'est aussi pour ça que parfois, on peut utiliser les touches de fonctions et parfois, faut ruser avec <ESC>+x
Je pense que votre serveur rétif à toute discussion avec autoit part du principe que le terminal qui refuse de discuter les questions protocolaires est un terminal évolué, alors que les autres serveurs qui fonctionnent avec autoit utilisent par défaut un terminal très basique (genre VT100 ) ce qui rend l'interprétation du code envoyé/reçu possible avec autoit.
après une petite recherche, j'ai trouvé ça : http://www.commentcamarche.net/contents ... elnet.php3

