Función GetIpInterfaceEntry (netioapi.h)

La función GetIpInterfaceEntry recupera información de IP para la interfaz especificada en el equipo local.

Sintaxis

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

Parámetros

[in, out] Row

Puntero a una estructura de MIB_IPINTERFACE_ROW que, al devolverse correctamente, recibe información de una interfaz en el equipo local. En la entrada, el miembro InterfaceLuid o InterfaceIndex del MIB_IPINTERFACE_ROW debe establecerse en la interfaz para la que se va a recuperar información.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es NO_ERROR.

Si se produce un error en la función, el valor devuelto es uno de los siguientes códigos de error.

Código devuelto Descripción
ERROR_FILE_NOT_FOUND
El sistema no encuentra el archivo especificado. Este error se devuelve si el luID de interfaz de red o el índice de interfaz especificado por el miembro InterfaceLuid o InterfaceIndex del MIB_IPINTERFACE_ROW señalado por el parámetro Row no era un valor en el equipo local.
ERROR_INVALID_PARAMETER
Se pasó un parámetro no válido a la función. Este error se devuelve si se pasa un puntero NULL en el parámetro Row , el miembro Family del MIB_IPINTERFACE_ROW señalado por el parámetro Row no se especificó como AF_INET o AF_INET6, o los miembros InterfaceLuid o InterfaceIndex del MIB_IPINTERFACE_ROW señalados por el parámetro Row no se especificaron.
ERROR_NOT_FOUND
Elemento no encontrado. Este error se devuelve si la interfaz de red especificada por el miembro InterfaceLuid o InterfaceIndex de la estructura MIB_IPINTERFACE_ROW a la que apunta el parámetro Row no coincide con la familia de direcciones IP especificada en el miembro Family de la estructura MIB_IPINTERFACE_ROW .
Otros
Use la función FormatMessage para obtener la cadena de mensaje para el error devuelto.

Comentarios

La función GetIpInterfaceEntry se define en Windows Vista y versiones posteriores.

En la entrada, el miembro Family de la estructura MIB_IPINTERFACE_ROW a la que apunta el parámetro Row debe inicializarse para AF_INET o AF_INET6. Además de la entrada, se debe inicializar al menos uno de los siguientes miembros de la estructura MIB_IPINTERFACE_ROW apuntado al parámetro Row : InterfaceLuid o InterfaceIndex.

Los campos se usan en el orden indicado anteriormente. Por lo tanto, si se especifica InterfaceLuid , este miembro se usa para determinar la interfaz. Si no se estableció ningún valor para el miembro InterfaceLuid (los valores de este miembro se establecieron en cero), el miembro InterfaceIndex se usará a continuación para determinar la interfaz.

En la salida, el miembro InterfaceLuid de la estructura MIB_IPINTERFACE_ROW a la que apunta el parámetro Row se rellena si se especificó InterfaceIndex . Los demás miembros de MIB_IPINTERFACE_ROW estructura a la que apunta el parámetro Row también se rellenan.

La función InitializeIpInterfaceEntry debe usarse para inicializar los campos de una entrada de estructura de MIB_IPINTERFACE_ROW con valores predeterminados. Después, una aplicación puede cambiar los campos de la entrada MIB_IPINTERFACE_ROW que desea modificar y, a continuación, llamar a la función SetIpInterfaceEntry .

El acceso simultáneo sin privilegios a varias redes de diferentes requisitos de seguridad crea un agujero de seguridad y permite que una aplicación sin privilegios retransmita accidentalmente los datos entre las dos redes. Un ejemplo típico es el acceso simultáneo a una red privada virtual (VPN) e Internet. Windows Server 2003 y Windows XP usan un modelo de host débil, donde RAS impide ese acceso simultáneo aumentando la métrica de ruta de todas las rutas predeterminadas en otras interfaces. Por lo tanto, todo el tráfico se enruta a través de la interfaz VPN, lo que interrumpe otra conectividad de red.

En Windows Vista y versiones posteriores, se usa un modelo de host seguro de forma predeterminada. Si se especifica una dirección IP de origen en la búsqueda de rutas mediante GetBestRoute2 o GetBestRoute, la búsqueda de rutas está restringida a la interfaz de la dirección IP de origen. La modificación de la métrica de ruta por RAS no tiene ningún efecto, ya que la lista de rutas potenciales ni siquiera tiene la ruta para la interfaz VPN, lo que permite el tráfico a Internet. El miembro DisableDefaultRoutes del MIB_IPINTERFACE_ROW se puede usar para deshabilitar mediante la ruta predeterminada en una interfaz. Los clientes VPN pueden usar este miembro como medida de seguridad para restringir la tunelización dividida cuando el cliente VPN no requiere la tunelización dividida. Un cliente VPN puede llamar a la función SetIpInterfaceEntry para establecer el miembro DisableDefaultRoutes en TRUE cuando sea necesario. Un cliente VPN puede consultar el estado actual del miembro DisableDefaultRoutes llamando a la función GetIpInterfaceEntry .

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado netioapi.h (include Iphlpapi.h)
Library Iphlpapi.lib
Archivo DLL Iphlpapi.dll

Consulte también

GetBestRoute

GetBestRoute2

GetIfEntry2

GetIfTable2

GetIfTable2Ex

GetIpInterfaceTable

Referencia de la función auxiliar de IP

MIB_IF_ROW2

MIB_IF_TABLE2

MIB_IPINTERFACE_ROW

MIB_IPINTERFACE_TABLE

SetIpInterfaceEntry