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

avec Java Discussion :

Comment connaître la version d'un OS sur une machine distante ?


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 21
    Points : 14
    Points
    14
    Par défaut Comment connaître la version d'un OS sur une machine distante ?
    bonjour,est ce que vous pouvez m'aider,j'ai besoin d'un bout de programme qui me permet de connaitre la version d'un OS sur les machines distantes sur un réseau local.
    merci d'avance

  2. #2
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 493
    Points
    15 493
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.getProperty("os.name")
    pour le nom de l'OS

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.getProperty("os.version")
    pour la version

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Connaitre l'os d'une machine distante n'est pas chose aisée. Il n'y a pas de protocole officiellement supporté pour faire ça. Il existe des outils comme nmap qui peuvent, à partir de certaines caractéristiques des packets IP reçu et d'une base de signature arriver à déterminer ce genre d'information.


    Mais faire ça directement en java, ca risque d'être assez galère, c'est déjà pas facile avec les langages de bas niveau

    le mieux serait pour ton programme d'invoquer nmap et de lui laisser faire son travail

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    j'ai arrivé a développer ce bout de programme et lorsque je l'intègre dans le programme qui affiche les ip des machines sur les réseau j'obtiens les mêmes informations pour tout les machines :
    Name of the OS: Windows Vista
    Version of the OS: 6.0
    Architecture of THe OS: x86
    on dirait que c'est statique.
    voici le code:
    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
    package opersys;
     
    public class OpertingsystemInfo {
    	public static void main(String[] args)
        {
            String nameOS = "os.name";        
            String versionOS = "os.version";        
            String architectureOS = "os.arch";
        System.out.println("\n    The information about OS");
            System.out.println("\nName of the OS: " + 
    System.getProperty(nameOS));
            System.out.println("Version of the OS: " + 
    System.getProperty(versionOS));
            System.out.println("Architecture of THe OS: " + 
    System.getProperty(architectureOS));
        }
    }
    merci pour vos réponses.

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    ca donne les informations sur la machine où le bout de code en question s'exécute. Tu n'aura pas des informatiosn distantes avec ça :s

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    comment faire alors est ce que je peut faire une astuce(un boucle) ou quelque chose qui va me permettre ça ou c'est pas possible.si vous avez des suggestions n'hésitez pas je vous en pris.

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    c'est compliqué et bien au delà de ce qu'on aurait le temps de vous expliquer sur le forum. Regardez la doc de nmap, ses sources, et vous comprendrez la difficulté.

  8. #8
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 493
    Points
    15 493
    Par défaut
    j'ai arrivé a développer ce bout de programme et lorsque je l'intègre dans le programme qui affiche les ip des machines sur les réseau j'obtiens les mêmes informations pour tout les machines
    En effet, je devais vraiment pas être bien réveillé ce matin, la méthode que j'ai donné donne les informations de la machine locale, pas distante.

    Comme dit tchize, utiliser un outil comme nmap semble être la seule solution envisageable étant donné que l'API Java ne permet pas de faire ça.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    utiliser un outil comme nmap????mais je suis entrain de faire un projet fin d'étude et je doit développer le code...

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    pour me connecter sur les machine du réseau en utilisant leurs adresses ip déjà acquis et exécuté le code locale que j'ai développé sur chacune des machine.est ce que je peut utiliser par exemple une Socket ou n'importe quel autre solution?

  11. #11
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    les machines distantes ne vont pas te laisser exécuter à distance du code comme ça Sinon ce serait un fameux trou de sécurité.

    Vous pouvez developper votre propre code, mais je vois pas où est le problème dans un projet de fin d'étude d'éviter de réinventer la roue. De toutes facons, les techniques utilisées par nmap sont
    -> Envois de paquets IP spécialement formé: impossible à faire en java de base
    -> Analyse des entêtes ip généré : information non disponible en java de base
    -> Scan des ports, utilisation de paquets "christmas tree" et autre: impossible à construire en java de base


    Concrètement, c'est quoi le but de votre application?

  12. #12
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 21
    Points : 14
    Points
    14
    Par défaut script en java
    création d'un script en java qui sert a :

    Scanner le réseau pour afficher:
    * les différents périphériques (imprimantes, pc, Switch)
    *les caractéristiques de chaque pc (taille disque dur, type de système d'exploitation, mémoire libre, model, port de connexion)
    *les analyse de sécurité (ports ouverts, les softwares sans licence)
    j'ai réussi a récupéré les adresses ip des machines connectées au réseau ainsi que les noms mais tout les autres caractéristiques sont locales donc le problème c que je doit exécute leur code sur les machine du réseau pour avoir leur caractéristique.

  13. #13
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    ben oui mais pour tout ça, tu n'aura pas le choix, il faudra installer sur les postes du réseau une application qui collecte ces données et les envoie vers ton serveur. Il faudra donc accéder à cette machine et faire l'installation.

    A noter qu'une grande partie de ces informations, meme en local, tu va souffrir pour les obtenir en java

  14. #14
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 493
    Points
    15 493
    Par défaut
    Ton professeur n'est visiblement pas au courant des limitation de java et de ce que l'on peut faire par réseau en général, une bonne partie des informations qu'il te demande, ne peux simplement pas être obtenue sans installer un logiciel coté client.

    Il faudrait que tu discutes de ça avec lui, car il n'y a pas de solution uniquement coté serveur.

  15. #15
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    regarde avec ton encadreur à recentrer le projet, ca part en c**** commec'est là. Je ne sais pas quel est la taille du réseau concerné, mais il serit peut etre plus judicieux de consacrer le temps du projet à la préparation, la configuration et la mise en place d'un outil comme OCS inventory http://www.ocsinventory-ng.org/index.php?page=French

  16. #16
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    mon encadreur(société)n'a jamais développer en java et veut que je développe avec vb mais si je développe en vb pour le jury le jour de la soutenance il vont baissé la note car tout est fait avec vb (cette application existe déja et compléte en vb)donc c mieux de la faire en java ,qui est une langage plus "nouveau" méme pour le jury .
    bon l'encadreur du société utilise déja ocs Inventory et GLPI.
    je veux faire quelque chose comme ocs inventory mais en java
    si je fait une socket qui va s'exécuté sur les machines distant et récupéré le résultat est ce possible?je pense que je n'ai pas d'autres choix.

  17. #17
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    possible mais encore une fois compliqué. Des tas d'informations que tu veux utiliser ne sont pas accessible à le JVM, il va falloir jouer avec du JNA ou des choses similaire pour y arriver.
    Tu serais pas plus avancé en VB, VB ne tourne que sous windows, hors ocs inventory est multi plateforme.

    La question que je me pose moi, c'est pourquoi ton encadreur veux te faire réinventer la roue? Il compte mettre une application concurrente sur le marché? (Ce qui serait une raison très valable) ou c'est juste pour le plaisir de refaire en moins bien ce qui existe (ce qui vaudrait un paquet de points en moins lors du jury).

    Et choisir un language pour le plaisir de choisir un language :/ Ca va un peux à l'encontre des bonne pratique, on choisi le langage approprié à un besoin donnée (multi plateforme -> VB out, accès aux système d'exploitation -> java fortement déconseillé). On en arriverai à C ou C++.

  18. #18
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    merci,
    mon encadreur ne ma pas donner l'idée de l'application mais je lui ai proposé car la société a accepté un excès de stagiaires vue les circonstance du pays au mois de janvier.(j'été obliger de chercher moi même une idée et l'encadreur a accepté)j'ai eu l'idée lorsque j'été en train de passer un stage ouvrier.

    pour le langage il a proposé le vb car il développe avec vb.mais en vb tout existe(dans les forums tu peut télécharger cette application et la finir en 1 semaine)et puisque je fait mon pfe j'ai voulu travailler avec java parce que on n'a pas étudié durant notre formation le langage java c'est une opportunité pour mois d'étudier un nouveau langage de programmation.Aucun ne ma averti des limitation de java en réseau.
    on m'a dit que je peux intégrer le c++ ou tout autres langage avec java est ce possible???

  19. #19
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 493
    Points
    15 493
    Par défaut
    Oui c'est possible d'inclure du code C/C++ dans un programme java sous forme de bibliothèques natives(via JNI ou JNA) au prix de la portabilité de l'application.

    Renseigne toi sur JNI et JNA, par exemple ici: http://mbaron.developpez.com/javase/jnijna/#LIV

  20. #20
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Si vous avez peu de temps devant vous, préférez JNA, il ne nécessite pas de code C/C++, il permet de charger et appeler depusi java des dlls.

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/12/2011, 09h16
  2. Réponses: 1
    Dernier message: 20/06/2011, 11h01
  3. Réponses: 3
    Dernier message: 15/09/2009, 17h56
  4. Comment lancer une appli sur une machine distante
    Par J.Michel dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 13/09/2007, 13h00
  5. Comment récupérer la liste des logiciels installés sur une machine ?
    Par david_chardonnet dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 19/09/2003, 17h41

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