Funzione GetIpInterfaceEntry (netioapi.h)
La funzione GetIpInterfaceEntry recupera informazioni IP per l'interfaccia specificata nel computer locale.
Sintassi
IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API GetIpInterfaceEntry(
[in, out] PMIB_IPINTERFACE_ROW Row
);
Parametri
[in, out] Row
Puntatore a una struttura MIB_IPINTERFACE_ROW che, in caso di esito positivo, riceve informazioni per un'interfaccia nel computer locale. In input, il membro InterfaceLuid o InterfaceIndex del MIB_IPINTERFACE_ROW deve essere impostato sull'interfaccia per cui recuperare le informazioni.
Valore restituito
Se la funzione ha esito positivo, il valore restituito viene NO_ERROR.
Se la funzione ha esito negativo, il valore restituito è uno dei codici di errore seguenti.
Codice restituito | Descrizione |
---|---|
|
Non è possibile trovare il file specificato. Questo errore viene restituito se l'interfaccia di rete LUID o l'indice di interfaccia specificato dal membro InterfaceLuid o InterfaceIndex del MIB_IPINTERFACE_ROW a cui punta il parametro Row non è un valore nel computer locale. |
|
Alla funzione è stato passato un parametro non valido. Questo errore viene restituito se un puntatore NULL viene passato nel parametro Row , il membro Family del MIB_IPINTERFACE_ROW a cui punta il parametro Row non è stato specificato come AF_INET o AF_INET6 oppure entrambi i membri InterfaceLuid o InterfaceIndex del MIB_IPINTERFACE_ROW a cui punta il parametro Row non sono stati specificati. |
|
Element not found. Questo errore viene restituito se l'interfaccia di rete specificata dal membro InterfaceLuid o InterfaceIndex della struttura MIB_IPINTERFACE_ROW a cui punta il parametro Row non corrisponde alla famiglia di indirizzi IP specificata nel membro Family nella struttura MIB_IPINTERFACE_ROW . |
|
Utilizzare la funzione FormatMessage per ottenere la stringa di messaggio per l'errore restituito. |
Commenti
La funzione GetIpInterfaceEntry viene definita in Windows Vista e versioni successive.
All'input, il membro Family nella struttura MIB_IPINTERFACE_ROW a cui punta il parametro Row deve essere inizializzato per AF_INET o AF_INET6. Inoltre, all'input, almeno uno dei membri seguenti nella struttura MIB_IPINTERFACE_ROW punta al parametro Row deve essere inizializzato: InterfaceLuid o InterfaceIndex.
I campi vengono usati nell'ordine indicato in precedenza. Quindi, se si specifica InterfaceLuid , questo membro viene usato per determinare l'interfaccia. Se non è stato impostato alcun valore per il membro InterfaceLuid (i valori di questo membro sono stati impostati su zero), il membro InterfaceIndex viene usato successivamente per determinare l'interfaccia.
Nell'output, il membro InterfaceLuid della struttura MIB_IPINTERFACE_ROW a cui punta il parametro Row viene compilato se è stato specificato InterfaceIndex . Vengono compilati anche gli altri membri della struttura MIB_IPINTERFACE_ROW a cui punta il parametro Row .
La funzione InitializeIpInterfaceEntry deve essere utilizzata per inizializzare i campi di una voce di struttura MIB_IPINTERFACE_ROW con valori predefiniti. Un'applicazione può quindi modificare i campi nella voce MIB_IPINTERFACE_ROW che desidera modificare e quindi chiamare la funzione SetIpInterfaceEntry .
L'accesso simultaneo senza privilegi a più reti di requisiti di sicurezza diversi crea un foro di sicurezza e consente a un'applicazione senza privilegi di inoltrare accidentalmente i dati tra le due reti. Un esempio tipico è l'accesso simultaneo a una rete privata virtuale (VPN) e a Internet. Windows Server 2003 e Windows XP usano un modello host debole, in cui RAS impedisce tale accesso simultaneo aumentando la metrica di route di tutte le route predefinite su altre interfacce. Di conseguenza, tutto il traffico viene instradato attraverso l'interfaccia VPN, interrompendo la connettività di rete.
In Windows Vista e versioni successive viene usato un modello host sicuro per impostazione predefinita. Se un indirizzo IP di origine viene specificato nella ricerca della route usando GetBestRoute2 o GetBestRoute, la ricerca della route è limitata all'interfaccia dell'indirizzo IP di origine. La modifica della metrica di route da RAS non ha alcun effetto perché l'elenco di potenziali route non ha nemmeno la route per l'interfaccia VPN consentendo così il traffico verso Internet. Il membro DisableDefaultRoutes del MIB_IPINTERFACE_ROW può essere usato per disabilitare l'uso della route predefinita in un'interfaccia. Questo membro può essere usato come misura di sicurezza da parte dei client VPN per limitare il split tunneling quando il split tunneling non è richiesto dal client VPN. Un client VPN può chiamare la funzione SetIpInterfaceEntry per impostare il membro DisableDefaultRoutes su TRUE quando necessario. Un client VPN può eseguire una query sullo stato corrente del membro DisableDefaultRoutes chiamando la funzione GetIpInterfaceEntry .
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2008 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | netioapi.h (include Iphlpapi.h) |
Libreria | Iphlpapi.lib |
DLL | Iphlpapi.dll |