Telnet en api win32 pour automatisation des taches avec mon modem speedtouch home

Soyez le premier à donner votre avis sur cette source.

Vue 9 587 fois - Téléchargée 609 fois

Description

largement inspiré de cette source: http://www.cppfrance.com/codes/TELNET-AVEC-INTERFACE-GRAPHIQUE-API-UNIQUEMENT-SANS-MFC_10749.aspx de Nebula,

mais quand même ajouter dans une bonne partie par ma touche perso...
seul 2 fonctions ont été gardées de Nebula (ClientRecv et Addline), bon quand même modifier...
notament le probleme et de traiter les caractères de recv du serveur telnet. le top serait de faire un TRACE("%c",CharDuRecv);
mais je suis pas en mode concole, et s'il y a un moyen je ne le connait pas... ( a ce propos si quelqu'un connait comment faire un TRACE vers une Edit Control je suis preneur. (je poserai la question dans le forum au cas ou).

Fonction du programme:
  • connection au serveur telnet du modem speedtouch (10.0.0.138)
  • entre le login et le mdp au démarage du prog.
  • boutton permettant de rebouter le modem //send(socket,"system reboot\r",0);
  • boutton permettant d'ajouter une plage de ports exemple du port 2121 à 2225 //send(socket,"nat create protocol=tcp inside_addr=10.0.0.1:2121 outside_addr=0.0.0.0:2121\r",0); etc jusqu'à 2225
  • boutton connection pour ce connecter et se dconnecter du modem


Les procédures ou fonctions principalent:
  • Connection(HWND hwnd) //pour se connecter au modem
  • Addline(char* mBuf) //notre Addline de Nebula modifié
  • ClientRecv(void* arg) //code de Nebula modifié (Thread)
  • Reception() //création du thread pour la reception du serveur telnet (recv)
  • login() //pour se connecter au modem


En esperant que ce code serve.
@+
youpi

Source / Exemple :


j'ai changer le font du control edit pour qu'il n'y est pas de décalage dans les caractères:

static HFONT police;
police= CreateFont(10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "Lucida Console");
SendMessage(GetDlgItem(hwnd,IDC_EDIT5),WM_SETFONT,(WPARAM)police,TRUE);

Conclusion :


reste a améliorer encore un peu le traitement du recv, il reste encore des fioritures, notament lors d'un send.
exemple send(s,"nat list\r",9,0);

le addline correspond à
"
=>
=>n
=>na
=>nat
=>nat
=>nat l
=>nat li
=>nat lis
=>nat list
=>nat list " //corriger par la fonction checkline

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

youpiyoyo
Messages postés
539
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
14 juillet 2010
-
salut Asebt,
effectivement, mais j'ai créé ce logiciel pour automatiser en c++ certaines tâches de mon modem/routeur. reboot/regles firewall/etc...

Je préfere le faire en natif que je créé moi-même plutot qu'avec une dll externe fait par quelqu'un d'autre... voila...

mais merci pour ton commentaire.
Youpi
ASEBT
Messages postés
18
Date d'inscription
lundi 23 octobre 2000
Statut
Membre
Dernière intervention
29 mars 2010
-
slt,
tu peux aussi utiliser extraputty qui est une dll te permettant de dialoguer sur Telnet, ssh .
super simple d'utilisation et gratui.
http://www.extraputty.com
@+
youpiyoyo
Messages postés
539
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
14 juillet 2010
-
Bonjour jojo,

Merci pour tes remarques. Ce programme, je l'utilise r?guli?rement pour param?trer mon firewall et rebooter mon pc. Personnellement je n'ai pas besoin de changer mon code. Mais pour des raisons x,y comme le programme est opensource vous pouvez faire toutes les modifications que vous voulez. Effectivement le login et le password est en dur, vous pouvez cr?er effectivment une msgbox pour demander le login et le password au d?marrage, et ?galement r?cup?rer les param?tres IP ?galement.
youpiyoyo
Jojo Lancien
Messages postés
7
Date d'inscription
vendredi 8 juin 2012
Statut
Membre
Dernière intervention
8 juin 2012
-
Ce code m'intéresse et j’ai pris le temps de le compiler et de le tester avec mon SPEEDTOUCH. Pour l’exécuter, j’ai dû remplacer 10.0.0.138 par 192.168.1.254 qui est l’adresse de mon SPEEDTOUCH et 10.0.0.1 par 192.168.1.64 qui était l’adresse de mon PC au moment de l’essai (cette adresse étant attribuée dynamiquement pas le SPEEDTOUCH n’est pas toujours la même, si plusieurs PC sont connectés au SPEEDTOUCH).
De plus, j’ai dû modifier les paramètres Login et Password qui sont codés en dur dans le logiciel. Avant de faire ces personnalisations, le logiciel bouclait sans rien afficher, ce qui signifie qu’il est nécessaire de disposer d’un compilateur pour utiliser ce programme.
Pour le rendre plus facilement utilisable, je vous suggèrerais d’ajouter une boîte de dialogue au démarrage de l’exécution pour saisir les adresses IP le Login et le Password.
Cordialement,
Jojo
youpiyoyo
Messages postés
539
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
14 juillet 2010
-
slt Dammak,

Je peux effectivement te donné l'exe il me faut ton address mail, tu n'as qu'a me l'envoyé en message privé, je te l'enverai.
Sache une chose par contre, c que le programme ne marchera pas si tu n'as pas de modem speedtouch.je te conseil de lancer le programme en debug, et le testé sur un serveur telnet, il fo réglé l'adresse IP etc.
Voila
@+

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.