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

Web & réseau Delphi Discussion :

Trouver le nom d'un reseau grace a sa description hardware


Sujet :

Web & réseau Delphi

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 8
    Points : 3
    Points
    3
    Par défaut Trouver le nom d'un reseau grace a sa description hardware
    Bonjour a tous,

    Je me presente, je m'appelle Nordine, je suis etudiant en ecole d'ingenieur en electronique & informatique par alternance.
    J'ai decide de m'inscrire sur ce forum car j'ai vraiment besoin de votre aide, d'habitude je trouve toutes les reponses a mes questions sur le forum, pour cette fois ci, je n'ai rien trouve qui a pu m'aider..

    Dans mon entreprise, on m'a confie la tache de coder les setups de 3 applications. Pour cela, j'utilise Inno Setup. J'ai reussi a creer mes 3 setups sans difficultes.
    Cependant, sur une des applications, il faut renseigner l'adresse IP du PC. Pour faciliter la tache du client, nous avons decide de lui fournir un adaptateur ethernet, et je dois forcer l'adresse IP de l'adaptateur pendant l'installation, afin que du cote logiciel, on puisse le preconfigurer et y mettre directement l''adresse IP qu'on aura choisi ( Histoire d'eviter les problemes du genre ou le client ne sait pas comment trouver son adresse IP par exemple).

    Pour faire cela, je lance une commande .bat pendant l'installation. Dans ce .bat, j'ai la commande suivante :

    netsh interface ip set address "Local Area Connection 2" static xx.xxx.xx.xxx
    J'utilise donc une commande "netsh" afin de forcer mon IP. Cependant, pour cela, j'ai besoin du nom de la connexion reseau, comme on peut le voir "Local Area Connection 2". Le probleme est que ce nom de reseau sera different selon le PC, cela dependra notamment de la langue du PC.

    Je recherche donc une solution a mon probleme, je ne demande pas forcement une solution mais une piste sur laquelle travailler. A mon avis, deux solutions sont peut etre possibles :
    - Reussir a changer le nom de reseau de mon adaptateur pendant mon setup.
    - Ou alors, detecter le nom du reseau a l'aide d'un script ou autre et l'inserer directement dans mon .bat.

    Pour cela, la seule information qui pourrait m'aider est la description de mon adaptateur pendant un ipconfig :

    Nom : Help.jpg
Affichages : 240
Taille : 44,3 Ko

    Ca sera la seule information qui sera identique, peu importe mon adaptateur ethernet, du moment que cest le meme modele. Je voudrais donc me servir de cette caracteristique pour soit reussir a configure le nom du reseau, soit retrouver le nom du reseau.

    Pensez vous que ces solutions sont enviseageable ? Ou alors avez vous une autre solution ?

    Je ne sais pas si je poste au bon endroit, je suis desole si ce n'est pas le cas.

    Merci par avance, bonne journee.
    Nordine.

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    alors moi, le premier qui me livre un produit qui fait ça, il sort les pieds devants
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Bonjour Paul,

    Je me doute bien que ma facon de faire n'est peut etre pas la meilleure.
    Ca reste du niveau scolaire, je travaille sur des petits projets afin d'apprendre des choses diverses et variees.
    Je suis encore en phase d'integration.
    J'en ai parle a mon tuteur avant et il m'a dit que je pouvais continuer dans ce sens la.. si vous avez une solution a mon probleme, je suis plus que preneur !

    A+,
    Nordine.

  4. #4
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    il me parait plus simple d'avoir une machine en DHCP, ce qui sera probablement le cas et de récupérer l'adresse IP obtenue.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 037
    Points : 40 943
    Points
    40 943
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Comme Paul, je détesterai qu'une installation de programme change mon IP !
    J'ai cru comprendre qu'en fait il s'agissait d'obtenir les renseignements pour les utiliser dans InnoSetup
    un coup de recherche internet (google pour ne pas le mentionner ) et http://stackoverflow.com/questions/6...ing-inno-setup
    les deux réponses ont leur avantage
    - la première ne répond qu'au problème de l'adresse IP (c'est déjà pas mal)
    - la seconde est plutôt une réponse plus générale sur le comment créer une DLL, et l'utiliser avec InnoSetup. Pour cette Dll il faudrait ensuite se pencher sur l'obtention du nom du réseau (la FAQ pointée par Paul indiquant déjà comment obtenir une adresse IP ) mais j'ai l'impression qu'en plus il peut y avoir plusieurs adaptateur réseau ?)

    à mon avis , il faudrait se pencher sur les WMI (Windows Machine Interface) pour le faire. Par curiosité j'ai consulté ce qui pourrait être utile comme WMI
    root\CIMV2\TerminalServices Class Win32_TSNetworkAdaptaterListSettingpour obtenir la liste des adresses IP
    root\CIMV2 Class Win32_NetworkConnection , pour les infos réseau ?

    comment ai-je fait pour chercher/obtenir cela (et pour ensuite, luxe, obtenir un programme console : j'ai utilisé WMI Delphi Code Creator
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  6. #6
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    il me parait plus simple d'avoir une machine en DHCP, ce qui sera probablement le cas et de récupérer l'adresse IP obtenue.
    +1 avec Paul.

    Et l'obtention de l'adresse IP sert à quoi exactement ??? (Car le plus souvent lors des installation, ce n'est pas l'adresse IP du poste dont on a besoin mais plutôt d'un serveur (si on ne veut pas passer par une URL ou nom de machine)...)

    En tous les cas en DHCP je ne vois pas l'utilité de la récupérer au niveau d'InnoSetup. Si elle est utile c'est éventuellement pour l'application installée et donc en DHCP c'est à l'application de récupérer cette IP à chaque lancement (puisqu'en DHCP on n'est pas assuré qu'on ait toujours la même).

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Bonjour a tous,

    Citation Envoyé par Paul TOTH Voir le message
    il me parait plus simple d'avoir une machine en DHCP, ce qui sera probablement le cas et de récupérer l'adresse IP obtenue.
    Au debut, j'ai utilise cette methode, j'ai essaye de recuperer l'adresse IP directement. Mais le probleme est que je me suis retrouve avec des PC qui possedaient plusieurs adresses IP. C'est devenu vite problematique, d'ou l'idee de l'adaptateur ethernet.

    Citation Envoyé par SergioMaster Voir le message
    Bonjour,

    Comme Paul, je détesterai qu'une installation de programme change mon IP !
    J'ai cru comprendre qu'en fait il s'agissait d'obtenir les renseignements pour les utiliser dans InnoSetup
    un coup de recherche internet (google pour ne pas le mentionner ) et http://stackoverflow.com/questions/6...ing-inno-setup
    les deux réponses ont leur avantage
    - la première ne répond qu'au problème de l'adresse IP (c'est déjà pas mal)
    - la seconde est plutôt une réponse plus générale sur le comment créer une DLL, et l'utiliser avec InnoSetup. Pour cette Dll il faudrait ensuite se pencher sur l'obtention du nom du réseau (la FAQ pointée par Paul indiquant déjà comment obtenir une adresse IP ) mais j'ai l'impression qu'en plus il peut y avoir plusieurs adaptateur réseau ?)
    Comme j'ai explique juste avant, c'est exactement ce que j'ai cherche a faire au depart. Mais sur une machine qui possedent plusieurs interfaces reseau, c'est impossible vu que le code me renvoie toutes les adresses IP. C'est donc la que j'ai opte pour l'adaptateur ethernet. Je me suis dit qu'en le fournissant, je pourrai lui forcer une adresse IP, sans toucher a la config du PC qui sera probablement configure en DHCP !

    Citation Envoyé par Barbibulle Voir le message
    +1 avec Paul.

    Et l'obtention de l'adresse IP sert à quoi exactement ??? (Car le plus souvent lors des installation, ce n'est pas l'adresse IP du poste dont on a besoin mais plutôt d'un serveur (si on ne veut pas passer par une URL ou nom de machine)...)
    En gros, sur deux des applications developpees, il faut renseigner l'adresse IP de la machine dans un menu configuration. Sachant que les futures utilisateurs ne seront pas forcement bons en informatique, on a voulu faciliter la tache de l'utilisateur en preconfigurant directement ces applis, en y renseignant l'IP. Vu que je ne pouvais pas recuperer son IP et l'utiliser ( car un client peut avoir plusieurs IP ), j'ai opte pour l'adaptateur.
    Cette application permet de voir une camera en temps reel ( streaming ).

    Merci a tous pour vos reponses,

    Nordine.

  8. #8
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    je ne comprend pas, ce que tu entends pas "fournir un adaptateur ethernet"...

    sur une machine qui a déjà plusieurs adresses IP tu veux lui en ajouter une supplémentaire ?! tout cela n'a pas de sens pour moi.

    peux tu préciser la connectique entre le PC et la caméra ?

    le seul cas où je pourrais éventuellement comprendre c'est que la caméra soit branchée directement sur un port ethernet supplémentaire par un câble croisé...elle serait donc dans un mini réseau local privé entre le PC et la caméra.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  9. #9
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 037
    Points : 40 943
    Points
    40 943
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    si j'ai bien compris, il s'agit donc de récupérer l'adresse de la Caméra (et non comme on le croyais au départ changer une adresse IP) grâce à son adresse MAC par exemple ou son nom ?
    je persiste à penser que les WMI sont justement faites pour ça le tout étant de trouver les bonnes classes ! et de faire ensuite la bonne requête WQL

    PS. je bascule sur le poste sur lequel j'ai WMI Delphi Code Creator pour obtenir un code
    [Edit] voilà le programme console
    à essayer avec un matériel branché sur le poste ?

    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
    69
    70
    71
    72
    73
    74
    75
    76
    77
    //-----------------------------------------------------------------------------------------------------
    //     This code was generated by the Wmi Delphi Code Creator (WDCC) Version 1.9.1.0
    //     http://code.google.com/p/wmi-delphi-code-creator/
    //     Blog http://theroadtodelphi.wordpress.com/wmi-delphi-code-creator/
    //     Author Rodrigo Ruz V. (RRUZ) Copyright (C) 2011-2014 
    //----------------------------------------------------------------------------------------------------- 
    //
    //     LIABILITY DISCLAIMER
    //     THIS GENERATED CODE IS DISTRIBUTED "AS IS". NO WARRANTY OF ANY KIND IS EXPRESSED OR IMPLIED.
    //     YOU USE IT AT YOUR OWN RISK. THE AUTHOR NOT WILL BE LIABLE FOR DATA LOSS,
    //     DAMAGES AND LOSS OF PROFITS OR ANY OTHER KIND OF LOSS WHILE USING OR MISUSING THIS CODE.
    //
    //----------------------------------------------------------------------------------------------------
    program GetWMI_Info;
     
    {$APPTYPE CONSOLE}
     
    uses
      SysUtils,
      ActiveX,
      ComObj,
      Variants;
     
     
     
    // La classe Win32_TSNetworkAdapterListSetting énumère l'adresse IP, le GUID et le nom de la carte réseau.
     
    procedure  GetWin32_TSNetworkAdapterListSettingInfo;
    const
      WbemUser            ='';
      WbemPassword        ='';
      WbemComputer        ='localhost';
      wbemFlagForwardOnly = $00000020;
    var
      FSWbemLocator : OLEVariant;
      FWMIService   : OLEVariant;
      FWbemObjectSet: OLEVariant;
      FWbemObject   : OLEVariant;
      oEnum         : IEnumvariant;
      iValue        : LongWord;
    begin;
      FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
      FWMIService   := FSWbemLocator.ConnectServer(WbemComputer, 'root\CIMV2\TerminalServices', WbemUser, WbemPassword);
      FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM Win32_TSNetworkAdapterListSetting','WQL',wbemFlagForwardOnly);
      oEnum         := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;
      while oEnum.Next(1, FWbemObject, iValue) = 0 do
      begin
        Writeln(Format('Caption             %s',[String(FWbemObject.Caption)]));// String
        Writeln(Format('Name                %s',[String(FWbemObject.Name)]));// String
        Writeln(Format('NetworkAdapterID    %s',[String(FWbemObject.NetworkAdapterID)]));// String
        Writeln(Format('NetworkAdapterIP    %s',[String(FWbemObject.NetworkAdapterIP)]));// String
        Writeln(Format('Status              %s',[String(FWbemObject.Status)]));// String
        Writeln(Format('TerminalName        %s',[String(FWbemObject.TerminalName)]));// String
     
        Writeln('');
        FWbemObject:=Unassigned;
      end;
    end;
     
     
    begin
     try
        CoInitialize(nil);
        try
          GetWin32_TSNetworkAdapterListSettingInfo;
        finally
          CoUninitialize;
        end;
     except
        on E:EOleException do
            Writeln(Format('EOleException %s %x', [E.Message,E.ErrorCode])); 
        on E:Exception do
            Writeln(E.Classname, ':', E.Message);
     end;
     Writeln('Press Enter to exit');
     Readln;      
    end.
    pour n'obtenir que l'adresse du matériel connaissant un paramètre (adresse mac , nom ....) il suffirait de rajouter au WQL une clause WHERE
    par exemple (sans pouvoir tester)
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    Select NetWorkAdataterIP from Win32_TSNetworkAdaptaterListSetting Where NetworkAdaptaterID = '{AAAA-BBBBBB-BBBB-BBB}'


    si j'ai compris cette classe il devrait y avoir la liste des matériels connectés au poste
    je suis sûr qu'il doit exister une classe qui permet la même chose sur le réseau local mais là, je sèche

    [re edit] il y a certainement d'autres moyens de faire par exemple voir ici seulement c'est du Visual C#
    (MP si besoin du source ou inscrit-toi à Code Project)
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

Discussions similaires

  1. Trouver le nom de la servlet appelante
    Par MLK jr dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 23/04/2006, 18h57
  2. trouver le nom d'un champ d'une table mysql
    Par durand2504 dans le forum Requêtes
    Réponses: 4
    Dernier message: 19/03/2006, 00h36
  3. trouver le nom de la table associée à un trigger
    Par ndufour dans le forum Développement
    Réponses: 2
    Dernier message: 09/02/2006, 16h25
  4. Problème de résolution de nom dans un réseau local
    Par bebert_2002 dans le forum Réseau
    Réponses: 9
    Dernier message: 08/08/2005, 12h20
  5. Trouver le nom de la DLL en cours d'execution
    Par jean31a dans le forum Langage
    Réponses: 10
    Dernier message: 10/05/2005, 09h26

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