Gestire gli indirizzi IP con AddIPAddress, DeleteIPAddress
La funzioneaddIPAddressaggiunge 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 funzioneAddIPAddressnon è persistente. L'indirizzo IPv4 esiste solo se l'oggetto adapter esiste. Il riavvio del computer annulla l'indirizzo IPv4, così come avviene quando si reimposta manualmente la scheda di interfaccia di rete (NIC).
Dopo aver chiamato correttamente addIPAddress, DHCP verrà disabilitato per l'indirizzo IP aggiunto. Pertanto, le funzioni come IpReleaseAddress, che richiedono l'abilitazione di DHCP, non funzioneranno sull'indirizzo IP aggiunto. La funzionedeleteIPAddresspuò essere usata per eliminare l'indirizzo IPv4 aggiunto.
Nota
I criteri di gruppo, i criteri aziendali e altre restrizioni sulla 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 variabili di ULONG denominate
NTEContext
eNTEInstance
, entrambe inizializzate su zero.Nota
La variabile
NTEContext
è 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 rispettivamente
iaIPAddress
eiaIPMask
. Questi valori sono semplicemente numeri interi senza segno. Inizializzare le variabiliiaIPAddress
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 funzioneaddIPAddressper aggiungere l'indirizzo IPv4. Verificare la presenza di errori e restituire il valore di errore al DWORD variabile
dwRetVal
(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 funzionegetIpAddrTable. Si presuppone che la variabile restituita da questa funzione sia denominata
pIPAddrTable
. Per assistenza con la funzione GetIpAddrTable, vedere Gestione dell'Indirizzo IP usando GetIpAddrTable.
Per usare deleteIpAddress
- Chiamare la funzionedeleteIPAddresspassando la variabile
NTEContext
come parametro. Verificare la presenza di errori e restituire il valore di errore al DWORD variabiledwRetVal
(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, prima deve essere chiamato AddIPAddress per ottenere l'handle NTEContext
. La procedura precedente presuppone che AddIPAddress sia già stato chiamato in un punto qualsiasi del codice e NTEContext
sia stato salvato e rimanga non corretto.
Passaggio successivo: recupero di informazioni tramite getIpStatistics
Passaggio Precedente: Gestione dei Lease DHCP tramite IpReleaseAddress e IpRenewAddress