IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Telnet avec du Java pour routeur Netopia


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2011
    Messages : 12
    Par défaut Telnet avec du Java pour routeur Netopia
    Bonjour,

    Je suis actuellement en pleine réflexion pour développer un script qui récupère les différentes config de mes routeurs via du telnet.

    enfait dans un fichier txt j'ai les adresses de tous mes routeurs ==> ça j'arrive à récupérer les adresses IP et les mettre dans un tableau de type vecteur (car je ne connais pas la taille de mon tableau)

    Ensuite la ou je commence à bloquer c'est au niveau du telnet, j'ai vu plusieurs chose sur le net mais c'est assez flou pour moi...
    j'aimerais que lorsque je lance mon appli qu'il récupère les adresses inséré dans mon vecteur pour se connecter dessus (genre telnet x.x.x.x:23) et ensuite qu'il me fasse un teste sur le mot de passe qui peut être différent(disons 3 mot de passe différent). ==> Le problème c'est que si le mot de passe est faux, il ne me retourne pas de message d'erreur que je puisse lire, il me renvois directement sur "name:" qui correspond au login!

    Dernière question, comment fait-on pour simuler les flèches directionnel dans le telnet? et mettre des temps de pause pour être sur que la commande ais fini de s’exécuter?

    Merci d'avance pour votre aide,

    Cordialement SGBVida

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Tu ouvres une socket sur l'adresse et le port, puis tu envois tes commandes.
    Si tu lis "name:", c'est qu'il faut retenter le login/mot de passe.
    Pour les flèches, cherche dans la table ASCII.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2011
    Messages : 12
    Par défaut
    actuellement j'ai ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    public class ReadFile 
    {
    	static String chaine = "";
    	static String fichier = "adresseIP.txt"; // Fichier avec les adresses IP des netopia
    	static Vector tableau = new Vector(); // Tableau à taille variable
     
     
    	public static void lecture () 
    	{
    		//lecture du fichier texte	
    		try{
    			InputStream ips = new FileInputStream(fichier); 
    			InputStreamReader ipsr = new InputStreamReader(ips);
    			BufferedReader br = new BufferedReader(ipsr);
    			String ligne;
    			while ((ligne=br.readLine())!=null)
    			{
    				tableau.addElement(ligne);
    				System.err.println(tableau.lastElement());
     
    			}
    			br.close(); 
    		}		
    		catch (Exception e){
    			System.out.println("Problème 1");
    		}
    	}
     
     
    	public static void telnet() throws UnknownHostException, IOException
    	{
    		try
    		{
    			while (tableau != null )
    			{
    				int n = 0;
    				Socket socket = new Socket((String) tableau.elementAt(n) , 23); // 23 est le port telnet par défaut
    				// Input
    				InputStream is = socket.getInputStream();
    				InputStreamReader isr = new InputStreamReader(is, "ASCII");
    				BufferedReader br = new BufferedReader(isr);
    				// Output
    				OutputStream os = socket.getOutputStream();
    				OutputStreamWriter osw = new OutputStreamWriter(os, "ASCII");
    				PrintWriter pw = new PrintWriter(osw);
     
    				System.err.println(tableau.elementAt(n));
     
    				String line = br.readLine();
    				if ("name:".equals(line))
    					{
    					pw.println("admin"); pw.flush();
    					pw.wait(100);
    					pw.println("test"); pw.flush();
    					pw.wait(100);
     
    					}
    				n = n+1;
    			}
    		}
    		catch (Exception e)
    		{
    			System.out.println("Problème 2");
    		}
     
     
    	}
    Bon je sais pas si mon code est propre déjà, mais est ce que mon code est bon?
    la question que je me pose, c'est comment faire les flèche haut et bas (en ASCII donc) car je ne peut pas mettre juste comme ça?

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Ta condition de boucle while n'est pas bonne.
    Ta variable "n" est réinitialisée à chaque début de boucle.
    Tu devrais réfléchir et relire ton code : la structure n'est pas correcte.
    Commence par faire un programme à vide qui ne fait rien d'autre que parcourir ton Vector.
    Lorsque le fonctionnement sera correct, tu pourras jouer avec les socket et les entrées/sorties.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2011
    Messages : 12
    Par défaut
    Je ne comprend pas pourquoi la condition de mon while est mauvaise ?
    ensuite pour la variable n, j'ai compris qu'il fallais que je l'initialise avant le while!

    ensuite dans je fait

    int n = 0;
    while (tableau != null )
    {
    System.out.println(tableau.elementAt(n));
    n = n+1;
    }
    je reçois comme message:

    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 >= 5
    at java.util.Vector.elementAt(Unknown Source)
    at Netopia.tableau.main(tableau.java:39)

    Sinon il parcours bien mon vecteur en affichant les adresses IP entré dans le fichier txt

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2010
    Messages : 394
    Par défaut
    Bonjour,

    Le soucis avec ce que tu fais, c'est que tableau ne sera jamais null, puisque tu ne le modifies pas (s'il était pas nul au départ, il ne risque pas de l'être par la suite).

    Ce que tu veux, c'est arrêter une fois que tu as atteint le dernier élément du tableau. Il faut donc que tu te serves de la taille de ce dernier (tableau.length) d'une façon ou d'une autre dans ta condition de sortie.

    Mako.

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/04/2008, 17h49
  2. cherche java pour ouvrir nouvelle fenêtre avec dimension
    Par audax dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 06/01/2008, 16h36
  3. Réponses: 2
    Dernier message: 20/11/2007, 16h00
  4. Modification entête XML avec Java pour RSS
    Par Hyst76 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 27/09/2007, 16h58
  5. Réponses: 5
    Dernier message: 11/01/2007, 12h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo