Condividi tramite


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

  1. Dichiarare variabili di ULONG denominate NTEContext e NTEInstance, 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

     

  2. Dichiarare le variabili per le strutture IPAddr e IPMask denominate rispettivamente iaIPAddress e iaIPMask. Questi valori sono semplicemente numeri interi senza segno. Inizializzare le variabili iaIPAddress e iaIPMask usando la funzione inet_addr.

    UINT iaIPAddress;
    UINT iaIPMask;
    
    iaIPAddress = inet_addr("192.168.0.5");
    iaIPMask    = inet_addr("255.255.255.0");
    
  3. 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 variabile dwRetVal (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