Gerenciar endereços IP com AddIPAddress, DeleteIPAddress
A função AddIPAddress adiciona o endereço IPv4 especificado ao adaptador especificado. A função DeleteIPAddress exclui o endereço IPv4 especificado do adaptador especificado. Essas funções podem ser usadas para adicionar e excluir endereços IPv4 a um adaptador de rede.
Um endereço IPv4 adicionado pela função AddIPAddress não é persistente. O endereço IPv4 existe apenas enquanto o objeto do adaptador existir. Reiniciar o computador destrói o endereço IPv4, assim como redefinir manualmente a NIC (cartão de interface de rede).
Depois que AddIPAddress for chamado com êxito, o DHCP será desabilitado para o endereço IP que foi adicionado. Portanto, funções como IpReleaseAddress, que exigem que o DHCP seja habilitado, não estarão funcionais no endereço IP adicionado. A função DeleteIPAddress pode ser usada para excluir o endereço IPv4 adicionado.
Observação
Políticas de grupo, políticas corporativas e outras restrições na rede podem impedir que essas funções sejam concluídas com êxito. Verifique se o aplicativo tem as permissões de rede necessárias antes de tentar usar essas funções.
Para usar AddIPAddress
Declare variáveis ULONG nomeadas
NTEContext
eNTEInstance
, ambas inicializadas como zero.Observação
A
NTEContext
variável é o único parâmetro para a função DeleteIPAddress ; para excluir o endereço IP adicionado,NTEContext
deve ser armazenado e inalterado.ULONG NTEContext = 0; ULONG NTEInstance = 0;
Observação
Declare variáveis para as estruturas IPAddr e IPMask chamadas
iaIPAddress
eiaIPMask
, respectivamente. Esses valores são simplesmente inteiros sem sinal. Inicialize asiaIPAddress
variáveis eiaIPMask
usando a função inet_addr .UINT iaIPAddress; UINT iaIPMask; iaIPAddress = inet_addr("192.168.0.5"); iaIPMask = inet_addr("255.255.255.0");
Chame a função AddIPAddress para adicionar o endereço IPv4. Verifique se há erros e retorne o valor do erro para a variável
dwRetVal
DWORD (para verificação de erros mais abrangente).dwRetVal = AddIPAddress(iaIPAddress, iaIPMask, pIPAddrTable->table[0].dwIndex, &NTEContext, &NTEInstance); if (dwRetVal != NO_ERROR) { printf("AddIPAddress call failed with %d\n", dwRetVal); }
Observação
O terceiro parâmetro é o índice do adaptador, que pode ser obtido chamando a função GetIpAddrTable . Supõe-se que a variável retornada por essa função é denominada
pIPAddrTable
. Para obter ajuda com a função GetIpAddrTable , consulte Gerenciando o endereço IP usando GetIpAddrTable.
Para usar DeleteIpAddress
- Chame a função DeleteIPAddress , passando a
NTEContext
variável como seu parâmetro. Verifique se há erros e retorne o valor do erro para a variáveldwRetVal
DWORD (para verificação de erros mais abrangente).dwRetVal = DeleteIPAddress(NTEContext); if (dwRetVal != NO_ERROR) { printf("\tDeleteIPAddress failed with error: %d\n", dwRetVal); }
Observação
Para usar DeleteIPAddress, AddIPAddress deve primeiro ser chamado para obter o identificador NTEContext
. O procedimento anterior pressupõe que AddIPAddress já foi chamado em algum lugar no código e NTEContext
foi salvo e permanece não corrompido.
Próxima etapa: recuperando informações usando GetIpStatistics
Etapa anterior: gerenciando concessões DHCP usando IpReleaseAddress e IpRenewAddress