JTextArea + flux de telnet

Résolu
cs_ghofrane Messages postés 44 Date d'inscription mardi 18 juillet 2006 Statut Membre Dernière intervention 11 août 2009 - 27 nov. 2007 à 14:46
assiaasy Messages postés 6 Date d'inscription samedi 14 août 2010 Statut Membre Dernière intervention 24 août 2010 - 22 août 2010 à 19:06
Bonjour,
j'ai le programme suivant :
 TelnetWrapper telnet = new TelnetWrapper();      
                                               
                             //connect to routeur        //
                          try {
                                   telnet.connect("192.168.54.150", 23);
                                  telnet.login("passwd");
                                  System.out.println(telnet.send("en"));
                                  telnet.login("passwd");
                                  
                                  telnet.send("show running-config | tee 192.168.54.65");
                                       System.out.println(telnet.waitfor(" transport input telnet"));
                                 telnet.disconnect();
                                       } catch(java.io.IOException ef) {
                                   ef.printStackTrace();
                                }
 le  résultat de telnet.send(dernière commande) est affiché à la console ( system.out)
Or je veux le récupérer dans un JTextArea. Et je ne sais pas comment rederiger le flux vers JTextArea

Merci de votre aide.

9 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
27 nov. 2007 à 15:17
Salut,

voici un petit code d'exemple (seule la méthode streamRedirect est importante, le rester c'est pour le test) :

import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;

import javax.swing.JFrame;
import javax.swing.JTextArea;

public class Test extends JFrame {

    public Test() {
        setDefaultCloseOperation(3);
        setSize(800, 600);
        setLocationRelativeTo(null);
        final JTextArea area = new JTextArea();
        setContentPane(area);
        streamRedirect(area);
    }
   
    private void streamRedirect(final JTextArea area) {
        //prépare le mode de sortie du flux pour stderr
        PrintStream psStdErr = new PrintStream(new OutputStream() {
            @Override
            public void write(int b) throws IOException {
                area.append("" + (char)b);
            }
        });
        //prépare le mode de sortie du flux pour stderr
        PrintStream psStdOut = new PrintStream(new OutputStream() {
            @Override
            public void write(int b) throws IOException {
                area.append("" + (char)b);
            }
        });
        //Change la dirrection du flux pour std out/err
        System.setErr(psStdErr);
        System.setOut(psStdOut);
    }
   
    public static void main(String[] args) {
        new Test().setVisible(true);
       
        //test
        System.out.println("Hello de stdout");
        System.err.println("Hello de stderr");
    }
   
}

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
3
cs_ghofrane Messages postés 44 Date d'inscription mardi 18 juillet 2006 Statut Membre Dernière intervention 11 août 2009
28 nov. 2007 à 09:31
Bonjour,
merci beaucoup c'est exactement ce que je cherchais.
merci.
0
cs_abdellah01 Messages postés 2 Date d'inscription dimanche 28 décembre 2008 Statut Membre Dernière intervention 30 avril 2010
30 avril 2010 à 13:50
Merci pour ce magnifique programme!!!
0
assiaasy Messages postés 6 Date d'inscription samedi 14 août 2010 Statut Membre Dernière intervention 24 août 2010
21 août 2010 à 16:40
Salut Twinuts,
je suis étudiante et je suis sur le point de réaliser une interface java pour la configuration d'un routeur cisco via telnet, je travail sur windows XP. j'ai utilisé le code suivant pour me connecté au routeur en mode privilégié.

TelnetWrapper telnet = new TelnetWrapper();

//connect to the ipaddress //
try {

telnet.connect("192.168.0.1", 23);
telnet.login("class");
System.out.println(telnet.send("en"));
telnet.login("cisco");

System.out.println(telnet.waitfor(" transport input telnet"));
telnet.disconnect();
} catch(java.io.IOException e) {
e.printStackTrace();
}
}
}

mais j'arrive pas à me connecter au routeur on me donne le message suivant :
Password: timeout expired!
% Bad passwords

merci pour votre aide :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
22 août 2010 à 01:38
Salut,

Bah dans le code que tu mets tu semble pas lui donner de password





------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
assiaasy Messages postés 6 Date d'inscription samedi 14 août 2010 Statut Membre Dernière intervention 24 août 2010
22 août 2010 à 04:59
salut merci d'avoir répondre javé presque perdu l'espoir
en fait g changé la méthode login de la classe TelnetWrapper comme suit :

public void login( String pwd) throws IOException {
waitfor("password:"); // throw output away
send(pwd);
}

parceque g pas configuré le routeur de sorte qu'il me demande le username pour telneter, sinn même si je le configure avec le username et je laisse la classe login comme ça :

public void login(String user String pwd) throws IOException {
//waitfor("login: "); // throw output away
//send(user);
waitfor("password:"); // throw output away
send(pwd);
}

ça me donne rien du tout, on me demande le username et il se bloque ici :(

Voilà le nom du package que g utilisé jsd.telnet
merci infiniment :)
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
22 août 2010 à 12:39
Salut,

Perso les telnet je pref faire à la mains avec un bon vieux socket.....
Pourquoi tu te prend le choux ? si il te demande quand même le username fait ton automate de tel façon qu'il s'adapte automatiquement en fonction de ce que te demande le routeur...




------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
assiaasy Messages postés 6 Date d'inscription samedi 14 août 2010 Statut Membre Dernière intervention 24 août 2010
22 août 2010 à 14:35
salut,
dsl g pas bien saisi je suis débutante en développement, je seré reconnaissante si vous m'expliqueré comment faire??
0
assiaasy Messages postés 6 Date d'inscription samedi 14 août 2010 Statut Membre Dernière intervention 24 août 2010
22 août 2010 à 19:06
salut,
en fait je suis sur le point de réaliser une interface java pour afficher les résultats des commandes show d'un routeur, donc j'utilise le code ke g déja donné pour se connecté au routeur, mais si vous me suggéré une solution meilleure je seré très reconnaissante
0
Rejoignez-nous