Condividi tramite


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

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

     

  2. Dichiarare le variabili per le strutture IPAddr e IPMask denominate iaIPAddress rispettivamente e iaIPMask. Questi valori sono semplicemente numeri interi senza segno. Inizializzare le iaIPAddress variabili 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 funzione AddIPAddress per aggiungere l'indirizzo IPv4. Verificare la presenza di errori e restituire il valore di errore alla variabile dwRetValDWORD (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 variabile dwRetValDWORD (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