[..] Problème TCPConnect sur Switch

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Lornoke
Niveau 1
Niveau 1
Messages : 11
Enregistré le : lun. 02 avr. 2012 16:05
Status : Hors ligne

[..] Problème TCPConnect sur Switch

#1

Message par Lornoke »

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
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Problème TCPConnect sur Switch

#2

Message par Tlem »

Lorsque vous vous connectez à l'équipement avec :

Code : Tout sélectionner

TCPConnect (IPAddr, port)
Quel est la valeur de retour ?
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é".
Lornoke
Niveau 1
Niveau 1
Messages : 11
Enregistré le : lun. 02 avr. 2012 16:05
Status : Hors ligne

Re: [..] Problème TCPConnect sur Switch

#3

Message par Lornoke »

Lorsque j'utilise le :

Code : Tout sélectionner

TCPConnect (IPAddr, port)
Je récupère bien un numéro de socket (supérieur à 1000) et non pas -1 avec un @error
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Problème TCPConnect sur Switch

#4

Message par Tlem »

Dans l'aide de la fonction, TCPRecv(), avez vous vu ceci :
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().
Je pense que le mieux est de forcer le mode binaire et d'utiliser BinaryToString() pour récupérer le texte en clair. ;)
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é".
Lornoke
Niveau 1
Niveau 1
Messages : 11
Enregistré le : lun. 02 avr. 2012 16:05
Status : Hors ligne

Re: [..] Problème TCPConnect sur Switch

#5

Message par Lornoke »

Je vais vous présenter les résultats de plusieurs tests :

Code : Tout sélectionner

$connect=TCPConnect($aIP[$i],23)
$a=TCPRecv($connect, 1024,1)
Msgbox(0,"Test",BinaryToString($a,1)) 
Image

Code : Tout sélectionner

$connect=TCPConnect($aIP[$i],23)
$a=TCPRecv($connect, 1024,1)
Msgbox(0,"Test",BinaryToString($a,4)) 
Image

Code : Tout sélectionner

$connect=TCPConnect($aIP[$i],23)
$a=TCPRecv($connect, 1024,1)
Msgbox(0,"Test",$a) 
Image


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")
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 :

Code : Tout sélectionner

TCPSend($connect,BinaryToString(00011001))
Mais ça ne fonctionne pas. Pouvez-vous me dire si c'est réalisable ?

Merci
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Problème TCPConnect sur Switch

#6

Message par Tlem »

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é".
Lornoke
Niveau 1
Niveau 1
Messages : 11
Enregistré le : lun. 02 avr. 2012 16:05
Status : Hors ligne

Re: [..] Problème TCPConnect sur Switch

#7

Message par Lornoke »

Le code me retourne ceci :
Image

(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))
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Problème TCPConnect sur Switch

#8

Message par Tlem »

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é".
Avatar du membre
Jerome
Niveau 9
Niveau 9
Messages : 661
Enregistré le : mar. 07 avr. 2009 08:35
Localisation : Picardie
Status : Hors ligne

Re: [..] Problème TCPConnect sur Switch

#9

Message par Jerome »

Coucou,


Aussi la marque / model du switch en question ?


Jérôme
Lornoke
Niveau 1
Niveau 1
Messages : 11
Enregistré le : lun. 02 avr. 2012 16:05
Status : Hors ligne

Re: [..] Problème TCPConnect sur Switch

#10

Message par Lornoke »

Je vous poste un screen d'une fenêtre Telnet dès mardi, pour l'instant Week-End :D

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)
Lornoke
Niveau 1
Niveau 1
Messages : 11
Enregistré le : lun. 02 avr. 2012 16:05
Status : Hors ligne

Re: [..] Problème TCPConnect sur Switch

#11

Message par Lornoke »

Désolé pour le double post, mais je suis obligé :)

Alors voici un screen une fois connecté à l'équipement en Telnet

Image
Lornoke
Niveau 1
Niveau 1
Messages : 11
Enregistré le : lun. 02 avr. 2012 16:05
Status : Hors ligne

Re: [..] Problème TCPConnect sur Switch

#12

Message par Lornoke »

Personne aurait une petite idée :D ? Je suis un peu (beaucoup d'ailleurs) bloqué actuellement ='(
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Problème TCPConnect sur Switch

#13

Message par Tlem »

Hummm, là comme ça, je ne vois pas vraiment.
D'après votre capture, la première chaine en retour du switch, devrait être :
SW_EFTC841820_RGI_01 login:
Or au mieux, en binaire, nous avont :
0xFFFD18FFFD20FFFD23FFFD27
Et là on est loin du compte !!!

Donc, j'avoue ne pas avoir de réponse à vous donner. :oops:
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é".
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [..] Problème TCPConnect sur Switch

#14

Message par sksbir »

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 )
Lornoke
Niveau 1
Niveau 1
Messages : 11
Enregistré le : lun. 02 avr. 2012 16:05
Status : Hors ligne

Re: [..] Problème TCPConnect sur Switch

#15

Message par Lornoke »

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
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Problème TCPConnect sur Switch

#16

Message par Tlem »

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é".
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [..] Problème TCPConnect sur Switch

#17

Message par sksbir »

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
Répondre