Gestire gli indirizzi IP con AddIPAddress, DeleteIPAddress
La funzione AddIPAddress aggiunge l'indirizzo IPv4 specificato all'adattatore specificato. La funzione DeleteIPAddress elimina l'indirizzo IPv4 specificato dall'adattatore specificato. Queste funzioni possono essere usate per aggiungere ed eliminare indirizzi IPv4 a una scheda di rete.
Un indirizzo IPv4 aggiunto dalla funzione AddIPAddress non è persistente. L'indirizzo IPv4 esiste solo se l'oggetto adapter esiste. Il riavvio del computer elimina definitivamente l'indirizzo IPv4, così come la reimpostazione manuale della scheda di interfaccia di rete (NIC).
Dopo che AddIPAddress è stato chiamato correttamente, DHCP verrà disabilitato per l'indirizzo IP aggiunto. Pertanto, le funzioni come IpReleaseAddress, che richiedono l'abilitazione di DHCP, non funzioneranno nell'indirizzo IP aggiunto. La funzione DeleteIPAddress può essere usata per eliminare l'indirizzo IPv4 aggiunto.
Nota
I criteri di gruppo, i criteri aziendali e altre restrizioni della rete potrebbero impedire il completamento di queste funzioni. Assicurarsi che l'applicazione disponga delle autorizzazioni di rete necessarie prima di tentare di usare queste funzioni.
Per usare AddIPAddress
Dichiarare le variabili ULONG denominate
NTEContext
eNTEInstance
, entrambe inizializzate su zero.Nota
La
NTEContext
variabile è l'unico parametro della funzione DeleteIPAddress . Per eliminare l'indirizzo IP aggiunto,NTEContext
deve essere archiviato e invariato.ULONG NTEContext = 0; ULONG NTEInstance = 0;
Nota
Dichiarare le variabili per le strutture IPAddr e IPMask denominate
iaIPAddress
rispettivamente eiaIPMask
. Questi valori sono semplicemente numeri interi senza segno. Inizializzare leiaIPAddress
variabili eiaIPMask
usando la funzione inet_addr .UINT iaIPAddress; UINT iaIPMask; iaIPAddress = inet_addr("192.168.0.5"); iaIPMask = inet_addr("255.255.255.0");
Chiamare la funzione AddIPAddress per aggiungere l'indirizzo IPv4. Verificare la presenza di errori e restituire il valore di errore alla variabile
dwRetVal
DWORD (per un controllo degli errori più completo).dwRetVal = AddIPAddress(iaIPAddress, iaIPMask, pIPAddrTable->table[0].dwIndex, &NTEContext, &NTEInstance); if (dwRetVal != NO_ERROR) { printf("AddIPAddress call failed with %d\n", dwRetVal); }
Nota
Il terzo parametro è l'indice dell'adattatore, che può essere ottenuto chiamando la funzione GetIpAddrTable . Si presuppone che la variabile restituita da questa funzione sia denominata
pIPAddrTable
. Per informazioni sulla funzione GetIpAddrTable , vedere Managing IP Address Using GetIpAddrTable.For help with the GetIpAddrTable function, see Managing IP Address Using GetIpAddrTable.
Per usare DeleteIpAddress
- Chiamare la funzione DeleteIPAddress passando la
NTEContext
variabile come parametro. Verificare la presenza di errori e restituire il valore di errore alla variabiledwRetVal
DWORD (per un controllo degli errori più completo).dwRetVal = DeleteIPAddress(NTEContext); if (dwRetVal != NO_ERROR) { printf("\tDeleteIPAddress failed with error: %d\n", dwRetVal); }
Nota
Per usare DeleteIPAddress, è necessario innanzitutto chiamare AddIPAddress per ottenere l'handle NTEContext
. La procedura precedente presuppone che AddIPAddress sia già stato chiamato da qualche parte nel codice ed NTEContext
è stato salvato e rimane non corretto.
Passaggio successivo: Recupero di informazioni tramite GetIpStatistics
Passaggio precedente: Gestione dei lease DHCP tramite IpReleaseAddress e IpRenewAddress