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
Declare variables ULONG denominadas
NTEContext
yNTEInstance
, 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
Declare variables para las estructuras IPAddr e IPMask denominadas
iaIPAddress
yiaIPMask
, respectivamente. Estos valores son simplemente enteros sin signo. Inicialice lasiaIPAddress
variables yiaIPMask
mediante la función inet_addr .UINT iaIPAddress; UINT iaIPMask; iaIPAddress = inet_addr("192.168.0.5"); iaIPMask = inet_addr("255.255.255.0");
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
dwRetVal
DWORD (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 variabledwRetVal
DWORD (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