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

C# Discussion :

Paramétrage TCP/IP Complet


Sujet :

C#

  1. #1
    Candidat au Club
    Inscrit en
    Février 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Paramétrage TCP/IP Complet
    Bonjour,
    Je suis nouveau ici alors soyez indulgent.
    Je me présente rapidement avant de vous exposer mon problème, je suis technicien dans un service informatique au sein d'un centre de formation et étudiant en BTS Iris. On possède un environnement Windows 2000 Pro, Windows 2000 Serveur + AD.

    Dans le cadre d'un application que je développe (à la base en C# pour l'interface, mais je peux me résoudre/contraindre à passer en C/C++), je souhaiterais paramétrer (TCP/IP) un poste : IP, Masque, Passerelle (résolu ou presque avec un appel système de la fonction "netsh") modifier les DNS, le nom de machine et joindre un domaine (c'est là que ça coince).

    J'ai navigué avec mon ami google, j'ai fait des recherches sur plusieurs forum mais je ne trouve aucune primitive ou fonction que ce soit en C#, C++ ou C pour modifier ces paramètres. J'ai songé à exploiter le registre mais j'ignore les clés exactes où ces paramètres figurent (après un joli F3 dans mon registre les valeurs correspondants à ce que je cherche apparaissent plusieurs fois, dans des clés différentes, je ne sais donc pas laquelle controle vraiment les paramètres). Je n'ai pas trouvé de commande DOS controlant totalement l'interface réseau donc... Je me tourne vers vous Erudits du Win et du C#...

    Merci d'avance...

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Candidat au Club
    Inscrit en
    Février 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Merci pour la réponse que je ne pensais pas venir si rapidement...

    Alors effectivement dans une première version de mon appli (développée en mode console en C) j'ai effectivement utilisé la primitive system()

    ça donnait quelque chose de l'ordre de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system("netsh interface ip...");
    Ca fonctionnait mais en avançant dans le projet, j'ai voulu une interface assez sympa et je me suis lancé dans le C# (ce qui a un but pédagogique en mode auto-didacte). Seulement je n'avais toujours pas résolu 2 problèmes : changer le nom de la machine et l'ajouter à un domaine... J'avais lu sur le site du Laboratoire Microsoft (SUPINFO) que l'idéal serait d'utiliser WMI. J'ai même trouvé un petit tuto qui présente un peu la WMI... Mais ne la connaissant pas, ne la maitrisant pas... Je cherche une ame charitable qui voudrais bien m'aiguiller pcq mon ami google me trahi.

    En tout cas merci pour le site j'ai pu y trouver de quoi compléter mes connaissances

  4. #4
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 163
    Points : 112
    Points
    112
    Par défaut
    Salut
    moi j'avais déjà commencé à faire un truc mais en passant par la console pour sauvegarder des configurations TCP/IP et les restaurer depuis des fichiers (cmd netsh -s ... un truc kome ça)
    Je voulait étendre les possibilités au config proxy & wifi mais je n'ai pas eu le courage de plonger dans le WMI

    Si un travail collaboratif t'intéresse, fait moi signe

  5. #5
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    En WMI vous devez utilisé cette classe :
    Win32_NetworkAdapterConfiguration
    Inutile d'essayer d'affecter des valeurs aux attibuts de la classe, ils sont en lecture seul, vous devez utiliser les méthodes Set disponible.

    Renommer un PC en WMI :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\ & strComputer & "\root\cimv2")
    Set colComputers = objWMIService.ExecQuery("Select * from Win32_ComputerSystem")
    For Each objComputer in colComputers
        errReturn = ObjComputer.Rename("NewName")
        WScript.Echo "Computer name is now " & objComputer.Name
    Next
    C'est du VBS, MSDN fouris quasiment que des exemples de code VBS pour WMI, car c'est surtout utilisé par les admin réseau qui font plein de script.
    Un peu de programmation Web, et aussi du VBS pour faire du VBA.

    Bref ce n'est à mon avis pas très compliqué à passer en C# avec le tutot que tu as récupéré.
    Il faut récupérer l'objet WMIService, je ne sais pas comment on fait en C# mais c'est la base de l'utilisation de WMi donc cela doit être dans ton tuto.
    Puis exécuter la requête "Select * from Win32_ComputerSystem" grâce à la méthode ExecQuery.
    Puis tu obtiens une liste d'objet que tu parcours et pour chaque objet tu peux appliquer la méthode Rename
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  6. #6
    Candidat au Club
    Inscrit en
    Février 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Tout d'abord merci à toi ced600
    Tes indications me seront somme toutes très utiles !
    Quand on ne maitrise pas on tatônne alors je "bidouillerai" entre les syntaxes VB et celles du C#.
    Apparemment WMI offre beaucoup de possibilités alors j'y attelle et fournirai mes résultats (concluants ou non, parfaitement aboutis ou pas)... Si ça peut aider d'autres personnes !

    GSXRider, pour moi il n'y a aucun soucis, je vais d'abord essayer de me mettre au niveau (point de vue WMI) et résoudre le problème qui est le mien, ensuite... la voie est ouverte (même si la route est longue)

Discussions similaires

  1. action APRES chargement complet ...
    Par PinGuy dans le forum Delphi
    Réponses: 7
    Dernier message: 06/07/2006, 17h16
  2. Paramétrage du DBEXTRACT
    Par mikouts dans le forum XMLRAD
    Réponses: 7
    Dernier message: 23/01/2003, 14h49
  3. [Concept]Concept d'un serveur TCP/IP
    Par Zc dans le forum Développement
    Réponses: 8
    Dernier message: 17/01/2003, 17h06
  4. Différence entre TCP, UDP, ICMP
    Par GliGli dans le forum Développement
    Réponses: 1
    Dernier message: 13/09/2002, 08h25
  5. transfert d'un fichier bitmap en socket tcp
    Par localhost dans le forum C++Builder
    Réponses: 5
    Dernier message: 29/07/2002, 00h40

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