Comment je peux changer automatiquement par code une adresse IP








Comment je peux changer automatiquement par code une adresse IP
Bonjour,
Tu peux utiliser la commande DOS : "IPCONFIG /RENEW"
tu peux la mettre dans un fichier BAT et le lancer avec Process.start()
ou la lancer directement avec un shell (commande Shell() ) mais je sais pas si cela fonctionne
Regarder à tout hasard Win32_NetworkAdapterConfiguration et tout ce qui tourne autour de DHCP et DNS dans le MSDN; il ya des API pour cela.
Attention c'est complexe
Perso, j ai longtemps chercher une solution, et j'ai finalement utilisé Win32_NetworkAdapterConfiguration.
J'ai trouvé l'implémentation très simple. J'ai un exemple en C# si ca t'interesse.
Bonjour,Envoyé par Nico_stras
Cela m'interesserai bien, est ce que tu pourrais laisser le code ici, merci![]()
Ca attendra l'année prochaine pour le code
Mais je te conseille tout simplement google...
http://www.supinfo-projects.com/fr/2004/wmi/5/
http://www.secretswindows.com/index....networking.htm
Perso, je ne suis pas passé par des requêtes WQL mais je récupère toutes les connexions. (Je limite l'utilisation de chaînes de caracères en dur dans mes codes ; risques d'erreurs indétectables par le compilateur).
Ce code ne fait que lister les connexions, mais avec les liens ci-dessus, tu devrais t'en sortir
http://www.developpez.net/forums/arc...p/t-27665.html
Si ça peut attendre, je te donne mon code début janvier
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
39public void ListIP() { ManagementClass objMC = new ManagementClass( "Win32_NetworkAdapterConfiguration"); ManagementObjectCollection objMOC = objMC.GetInstances(); // Référence au WMI "Win32_NetworkAdapterConfiguration" foreach(ManagementObject objMO in objMOC) // Pour chaque connexion { if(!(bool)objMO["ipEnabled"]) // Il ne s'agit pas d'une connexion réseau de type Ethernet TCP/IP : on passe continue; Console.WriteLine(objMO["Caption"] + "," + objMO["ServiceName"] + "," + objMO["MACAddress"]) ; string[] ipaddresses = (string[]) objMO["IPAddress"]; string[] subnets = (string[]) objMO["IPSubnet"]; string[] gateways = (string[]) objMO["DefaultIPGateway"]; Console.WriteLine("Printing Default Gateway Info:"); Console.WriteLine(objMO["DefaultIPGateway"].ToString()); Console.WriteLine("Printing IPGateway Info:"); foreach(string sGate in gateways) Console.WriteLine (sGate); Console.WriteLine("Printing Ipaddress Info:"); foreach(string sIP in ipaddresses) Console.WriteLine(sIP); Console.WriteLine("Printing SubNet Info:"); foreach(string sNet in subnets) Console.WriteLine(sNet); }
ATTENTION : Bien respecter les types (tableau de string, même si ce tableau n'a qu'une seule dimension)
Partager