Share via


Administrar direcciones IP con AddIPAddress, DeleteIPAddress

La función AddIPAddress agrega la dirección IPv4 especificada al adaptador especificado. La función DeleteIPAddress elimina la dirección IPv4 especificada del adaptador especificado. Estas funciones se pueden usar para agregar y eliminar direcciones IPv4 a un adaptador de red.

Una dirección IPv4 agregada por la función AddIPAddress no es persistente. La dirección IPv4 solo existe siempre y cuando exista el objeto de adaptador. Al reiniciar el equipo, se destruye la dirección IPv4, como se restableced manualmente la tarjeta de interfaz de red (NIC).

Después de llamar correctamente a AddIPAddress , DHCP se deshabilitará para la dirección IP que se agregó. Por lo tanto, las funciones como IpReleaseAddress, que requieren que DHCP esté habilitado, no serán funcionales en la dirección IP agregada. La función DeleteIPAddress se puede usar para eliminar la dirección IPv4 agregada.

Nota

Las directivas de grupo, las directivas empresariales y otras restricciones de la red pueden impedir que estas funciones se completen correctamente. Asegúrese de que la aplicación tiene los permisos de red necesarios antes de intentar usar estas funciones.

 

Para usar AddIPAddress

  1. Declare variables ULONG denominadas NTEContext y NTEInstance, inicializadas en cero.

    Nota

    La NTEContext variable es el único parámetro de la función DeleteIPAddress ; para eliminar la dirección IP que se agrega, NTEContext debe almacenarse y no modificarse.

     

        ULONG NTEContext = 0;
        ULONG NTEInstance = 0;
    
    

    Nota

     

  2. Declare variables para las estructuras IPAddr e IPMask denominadas iaIPAddress y iaIPMask, respectivamente. Estos valores son simplemente enteros sin signo. Inicialice las iaIPAddress variables y iaIPMask mediante la función inet_addr .

    UINT iaIPAddress;
    UINT iaIPMask;
    
    iaIPAddress = inet_addr("192.168.0.5");
    iaIPMask    = inet_addr("255.255.255.0");
    
  3. Llame a la función AddIPAddress para agregar la dirección IPv4. Compruebe si hay errores y devuelve el valor de error a la variable dwRetValDWORD (para obtener una comprobación de errores más extensa).

    dwRetVal = AddIPAddress(iaIPAddress, iaIPMask, pIPAddrTable->table[0].dwIndex, 
                                 &NTEContext, &NTEInstance);
    if (dwRetVal != NO_ERROR) {
        printf("AddIPAddress call failed with %d\n", dwRetVal);
    }
    

    Nota

    El tercer parámetro es el índice del adaptador, que se puede obtener llamando a la función GetIpAddrTable . Se supone que la variable devuelta por esta función se denomina pIPAddrTable. Para obtener ayuda con la función GetIpAddrTable , consulte Administración de direcciones IP mediante GetIpAddrTable.

     

Para usar DeleteIpAddress

  • Llame a la función DeleteIPAddress y pase la NTEContext variable como parámetro. Compruebe si hay errores y devuelve el valor de error a la variable dwRetValDWORD (para obtener una comprobación de errores más extensa).
    dwRetVal = DeleteIPAddress(NTEContext);
    if (dwRetVal != NO_ERROR) {
            printf("\tDeleteIPAddress failed with error: %d\n", dwRetVal);
    } 
    

Nota

Para usar DeleteIPAddress, primero se debe llamar a AddIPAddress para obtener el identificador NTEContext. En el procedimiento anterior se da por hecho que ya se ha llamado a AddIPAddress en algún lugar del código y NTEContext se ha guardado y permanece incorrupdo.

 

Paso siguiente: Recuperar información mediante GetIpStatistics

Paso anterior: Administración de concesiones dhcp mediante IpReleaseAddress y IpRenewAddress