Compartilhar via


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

  1. Declare variáveis ULONG nomeadas NTEContext e NTEInstance, 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

     

  2. Declare variáveis para as estruturas IPAddr e IPMask chamadas iaIPAddress e iaIPMask, respectivamente. Esses valores são simplesmente inteiros sem sinal. Inicialize as iaIPAddress variáveis e iaIPMask usando a função inet_addr .

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