Bonjour
je souhaite modifier par prog' , la passerelle réseau , le dns primaire et secondaire ...
Si quelqun peut me mettre sur la voie ?
Version imprimable
Bonjour
je souhaite modifier par prog' , la passerelle réseau , le dns primaire et secondaire ...
Si quelqun peut me mettre sur la voie ?
Bonjour,
J'ai déjà eu a rechercher comment faire cela et la solution la plus simple que j'ai trouvé est d'utiliser la commande console netsh.
Pour utiliser une commande console via un prog regarde du coté de "ShellExecute".
la commande pour modifier l'ip, et la passerelle est :
Code:
1
2
3
4 netsh interface ip set address "interface name" static/dhcp "IP" "MASK" "GATEWAY" 1 exemple : netsh interface ip set address "Reseau local 1" static 192.168.0.1 255.255.255.0 192.168.0.254 1
et pour modifier le dns :
Si tu veux pouvoir retrovuer le nom du réseau par programme (ici "Reseau local 1", il faut regarder du coté de la librairie iphlpapi.lib.Code:
1
2
3
4 netsh interface ip set dns "interface name" static "IP" exemple : netsh interface ip set dns "Reseau local 1" static 212.21.43.5
Un petit code permetant de récupérer les infos des différentes interfaces réseau et ajouter le nom des interface dans un comboBox :
Code:
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 void __fastcall SetAdaptersName() { DWORD adapterBuffSize=0; // récupere la taille du buffer GetAdaptersInfo(NULL, &adapterBuffSize); //allocation mémoire adaptInfo = (PIP_ADAPTER_INFO) new BYTE[adapterBuffSize]; //récupération des infos GetAdaptersInfo(adaptInfo, &adapterBuffSize); //recherche dans la bdr le nom logique des interfaces depuis leur nom PIP_ADAPTER_INFO tmpAdapt; tmpAdapt = adaptInfo; AnsiString name; TRegistry *reg = new TRegistry(); try { reg->RootKey = HKEY_LOCAL_MACHINE; while(tmpAdapt != NULL) { AnsiString path = "\\SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\"; path += tmpAdapt->AdapterName; path += "\\Connection"; reg->OpenKey(path,false); name = reg->ReadString("Name"); ComboBox1->Items->Add(Name); tmpAdapt = tmpAdapt->Next; } ) __finally { delete reg; } }