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
|
typedef DWORD (WINAPI *PSETADAPTERIPADDRESS)(const char*,DWORD,DWORD,DWORD,DWORD);
/*
* SetIpAddress
* Fixe l'adresse IP d'une carte réseau
* Entrée -> AdapterGUID: GUID de la carte réseau, ex {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
* -> DHCP: 0 si IP statique, 1 si IP dynamique
* -> IPAddress: adresse ip au format binaire
* -> SubnetMask: masque sous-réseau au format binaire
* -> Gateway: passerelle au format binaire
* Sortie <- 0 si réussite ou numéro d'erreur Windows (à vérifier...)
*/
DWORD SetIpAddress(const char* AdapterGUID,DWORD DHCP,DWORD IPAddress,DWORD SubnetMask,DWORD Gateway)
{
DWORD Error;
HINSTANCE HndLib;
PSETADAPTERIPADDRESS SetAdapterIpAddress;
Error = ERROR_NOT_SUPPORTED;
// Chargement de la DLL
HndLib = (HINSTANCE)LoadLibrary(TEXT("iphlpapi.dll"));
if(HndLib != NULL)
{
// Récupération de l'adresse de la procédure
SetAdapterIpAddress = (PSETADAPTERIPADDRESS)GetProcAddress(HndLib,"SetAdapterIpAddress");
if(SetAdapterIpAddress != NULL)
{
// Appel de la procédure
Error = SetAdapterIpAddress(AdapterGUID,DHCP,IPAddress,SubnetMask,Gateway);
}
}
return Error;
} |
Partager