Função GetIpInterfaceEntry (netioapi.h)

A função GetIpInterfaceEntry recupera informações de IP para a interface especificada no computador local.

Sintaxe

IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API GetIpInterfaceEntry(
  [in, out] PMIB_IPINTERFACE_ROW Row
);

Parâmetros

[in, out] Row

Um ponteiro para uma estrutura MIB_IPINTERFACE_ROW que, no retorno bem-sucedido, recebe informações de uma interface no computador local. Na entrada, o membro InterfaceLuid ou InterfaceIndex do MIB_IPINTERFACE_ROW deve ser definido como a interface para a qual recuperar informações.

Retornar valor

Se a função for bem-sucedida, o valor retornado será NO_ERROR.

Se a função falhar, o valor retornado será um dos códigos de erro a seguir.

Código de retorno Descrição
ERROR_FILE_NOT_FOUND
O sistema não pode encontrar o arquivo especificado. Esse erro será retornado se o LUID da interface de rede ou o índice de interface especificado pelo membro InterfaceLuid ou InterfaceIndex do MIB_IPINTERFACE_ROW apontado pelo parâmetro Row não for um valor no computador local.
ERROR_INVALID_PARAMETER
Um parâmetro inválido foi passado para a função. Esse erro será retornado se um ponteiro NULL for passado no parâmetro Row , o membro Family do MIB_IPINTERFACE_ROW apontado pelo parâmetro Row não tiver sido especificado como AF_INET ou AF_INET6 ou os membros InterfaceLuid ou InterfaceIndex do MIB_IPINTERFACE_ROW apontados pelo parâmetro Row não foram especificados.
ERROR_NOT_FOUND
Elemento não encontrado. Esse erro será retornado se o adaptador de rede especificado pelo membro InterfaceLuid ou InterfaceIndex da estrutura MIB_IPINTERFACE_ROW apontada pelo parâmetro Row não corresponder à família de endereços IP especificada no membro Da família na estrutura MIB_IPINTERFACE_ROW .
Outros
Use a função FormatMessage para obter a cadeia de caracteres de mensagem para o erro retornado.

Comentários

A função GetIpInterfaceEntry é definida no Windows Vista e posterior.

Na entrada, o membro Da família na estrutura MIB_IPINTERFACE_ROW apontada pelo parâmetro Row deve ser inicializado para AF_INET ou AF_INET6. Além da entrada, pelo menos um dos seguintes membros na estrutura MIB_IPINTERFACE_ROW apontado para o parâmetro Row deve ser inicializado: InterfaceLuid ou InterfaceIndex.

Os campos são usados na ordem listada acima. Portanto, se InterfaceLuid for especificado, esse membro será usado para determinar a interface. Se nenhum valor tiver sido definido para o membro InterfaceLuid (os valores desse membro foram definidos como zero), o membro InterfaceIndex será usado em seguida para determinar a interface.

Na saída, o membro InterfaceLuid da estrutura MIB_IPINTERFACE_ROW apontada pelo parâmetro Row será preenchido se InterfaceIndex tiver sido especificado. Os outros membros de MIB_IPINTERFACE_ROW estrutura apontada pelo parâmetro Row também são preenchidos.

A função InitializeIpInterfaceEntry deve ser usada para inicializar os campos de uma entrada de estrutura MIB_IPINTERFACE_ROW com valores padrão. Em seguida, um aplicativo pode alterar os campos na entrada MIB_IPINTERFACE_ROW que deseja modificar e, em seguida, chamar a função SetIpInterfaceEntry .

O acesso simultâneo sem privilégios a várias redes de diferentes requisitos de segurança cria uma falha de segurança e permite que um aplicativo sem privilégios retransmitisse dados acidentalmente entre as duas redes. Um exemplo típico é o acesso simultâneo a uma VPN (rede virtual privada) e à Internet. O Windows Server 2003 e o Windows XP usam um modelo de host fraco, em que o RAS impede esse acesso simultâneo aumentando a métrica de rota de todas as rotas padrão em relação a outras interfaces. Portanto, todo o tráfego é roteado por meio da interface VPN, interrompendo outra conectividade de rede.

No Windows Vista e posterior, um modelo de host forte é usado por padrão. Se um endereço IP de origem for especificado na pesquisa de rota usando GetBestRoute2 ou GetBestRoute, a pesquisa de rota será restrita à interface do endereço IP de origem. A modificação da métrica de rota por RAS não tem efeito, pois a lista de rotas potenciais nem sequer tem a rota para a interface VPN, permitindo assim o tráfego para a Internet. O membro DisableDefaultRoutes do MIB_IPINTERFACE_ROW pode ser usado para desabilitar usando a rota padrão em uma interface. Esse membro pode ser usado como uma medida de segurança por clientes VPN para restringir o túnel dividido quando o túnel dividido não é exigido pelo cliente VPN. Um cliente VPN pode chamar a função SetIpInterfaceEntry para definir o membro DisableDefaultRoutes como TRUE quando necessário. Um cliente VPN pode consultar o estado atual do membro DisableDefaultRoutes chamando a função GetIpInterfaceEntry .

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho netioapi.h (inclua Iphlpapi.h)
Biblioteca Iphlpapi.lib
DLL Iphlpapi.dll

Confira também

GetBestRoute

GetBestRoute2

GetIfEntry2

GetIfTable2

GetIfTable2Ex

GetIpInterfaceTable

Referência de função auxiliar de IP

MIB_IF_ROW2

MIB_IF_TABLE2

MIB_IPINTERFACE_ROW

MIB_IPINTERFACE_TABLE

SetIpInterfaceEntry