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

Entrée/Sortie Java Discussion :

Connexion a distance et commande DOS


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2012
    Messages : 3
    Par défaut Connexion a distance et commande DOS
    Bonjour,

    Débutant dans ce langage (et en POO par ailleurs, je viens du Mainframe), je cherche à réaliser une petite appli en Java qui me permettrait de récupérer certaines données couramment utiliser pour des incidents sur mon site de travail.

    Le but de cette appli :
    1: récupérer la liste des IP grâce à leur ID Réseau : Ca, ca fonctionne déjà.
    2: connection à un poste distant : Je n'y arrive pas.
    3: envoyer une ligne de commande DOS et récupérer le flux : Fonctionne en local, pas à distance (normal vu que je n'arrive pas à me connecter à distance).
    4: Si j'y arrive, je pense ensuite faire une interface sommaire me permettant de lancer des commandes courantes en cliquant sur des boutons ou via une ComboBox par exemple.

    Précision :
    Je ne souhaite pas installer quoique ce soit sur les postes distants cibles (les postes distants n'ont pas un serveur faisant tourner du java et je ne peux pas trop alourdir leur performance).
    Tous les PCs cibles tournent avec un XP Pro SP3.

    Question :
    1. Q1 : Quel(s) est(sont) la(les) meilleure(s) solution(s) pour me connecter à un ordinateur sur le réseau de mon entreprise ?
      J'arrive à récupérer leur IP via InetAddress mais je me demande si les valeurs proviennent réellement du poste ou si c'est pas le controleur de domaine qui me ramène ses données...
    2. Q2 : J'essaie de me connecter avec la classe Socket.
      Est-ce une bonne solution ?
      Actuellement, je tombe en TimeOut en tentant de faire "Socket s = new Socket(host,port);"
    3. Q2' : Cela me permettra-t-il ensuite d'utiliser Process et Runtime pour executer cmd.exe avec une ligne de commande et récupérer les flux ?

      Pour info, j'utilise déjà cela en local et ca à l'air fonctionnel. Mais je ne vois pas comment demarrer un Process à distance...
    4. Q3 : Est-ce réalisable un tel outil sans créer de "services" windows sur les postes distants ?
      Si non réalisable, il va falloir que je fouille un peu le net pour comprendre la démarche...



    Je n'ai pas vraiment de code à montrer pour le moment car je teste unitairement chaque étape (connection distante, récupération IP, execution de cmd.exe avec une commande en argument).

    Voila, en fait, j'crois que j'ai besion d'un peu d'aide et/ou explication pour poursuivre car hormis faire une appli executable en local (ca, ca devrait être possible rapidement), je bute complètement sur l'accès à distance et ses mécanismes (connection à distance et lancement programme à distance notamment).

    Cordialement,
    Grégory Faupin

  2. #2
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2012
    Messages : 3
    Par défaut
    Voici un code source qui fonctionne pour récupérer les IP depuis une liste de nom d'hôte.

    Main
    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
     
    package fr.interne.gf.lanceur;
     
    import java.util.List;
    import fr.interne.gf.system.ProprieteSysteme;
    import fr.interne.gf.utils.ListesPC;
     
    public class Lanceur {
    	public static void main(String[] args){
    		List<String> listeNomHote = ListesPC.Liste790();  // récupération des nom d'hôte dans une liste : appel static.
     
    		ProprieteSysteme.ObtenirIPDistantDepuisListe(listeNomHote);
     
    	}
     
    }
    ProprieteSysteme
    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
     
    package fr.interne.gf.system;
     
     
    import java.net.InetAddress;
    import java.net.UnknownHostException;
    import java.util.List;
     
     
    public class ProprieteSysteme {
    	private final static int PORT_DEFAUT = 80;
     
    	public static void ObtenirIPDistantDepuisListe (List<String> listeNomHote){
    		String retour = null;
    		int port = PORT_DEFAUT;
    		for (String nomHote : listeNomHote){
    			retour = nomHote; // Sert à identifier le nom d'hôte qui entraine l'erreur UnknowHostException
    			InetAddress ina1;
    			String adresseIP = null;
    			String nomHoteIP = null;
    			try {
    				ina1 = InetAddress.getByName(nomHote);
    				retour = null; // l'exception n'a pas été levée
    				adresseIP = ina1.getHostAddress();
    				nomHoteIP = ina1.getHostName();
    			} catch (UnknownHostException e) {
    				System.out.println("\nERREUR - impossible de récupérer les données InetAdress pour l'hôte " + retour);
    				e.printStackTrace();
    			}
     
    			if(nomHoteIP!=null && adresseIP!=null){
    				System.out.println("\nRécupération des informations réseaux."
    						+ "\nNom d'hôte :" + nomHoteIP
    						+ "\nAdresse IP :" + adresseIP);
     
    			}
    		}
     
    	}
    }

    Ce code fonctionne correctement et me renvoi l'ensemble des données souhaitées sur ma console.
    Par contre, j'ai un doute sur la provenance des infos... (ordi distant ? serveur DNS ? serveur de domaine ?)

Discussions similaires

  1. Shell connexion à distance et commandes
    Par Invité dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 10/05/2013, 17h50
  2. [Débutant] [développement] Comment lancer des commandes dos à distance ?
    Par Tarmineldur dans le forum Développement Windows
    Réponses: 30
    Dernier message: 12/12/2012, 12h15
  3. Démarrer un parc de PC à distance (commande DOS)
    Par daveid dans le forum Windows
    Réponses: 27
    Dernier message: 09/08/2011, 15h27
  4. commande dos à distance
    Par lesafir dans le forum VB.NET
    Réponses: 3
    Dernier message: 21/07/2008, 15h44
  5. commande dos pour résoudre une adresse ip
    Par stephy dans le forum Développement
    Réponses: 2
    Dernier message: 17/12/2002, 14h04

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