Uso di SIO_ADDRESS_LIST_SORT
Il SIO_ADDRESS_LIST_SORT IOCTL consente agli sviluppatori di applicazioni di ordinare un elenco di indirizzi di destinazione IPv6 e IPv4 per determinare l'indirizzo migliore disponibile per stabilire una connessione. Il SIO_ADDRESS_LIST_SORT IOCTL è supportato in Windows XP e versioni successive.
In Windows Vista e versioni successive, la funzione CreateSortedAddressPairs accetta un elenco fornito di potenziali indirizzi IP di destinazione IP, associa gli indirizzi di destinazione con gli indirizzi IP locali del computer host e ordina le coppie in base alla coppia di indirizzi più adatta per la comunicazione tra i due peer. È consigliabile usare la funzione CreateSortedAddressPairs anziché la SIO_ADDRESS_LIST_SORT IOCTL in Windows Vista e versioni successive.
Le sezioni seguenti descrivono le considerazioni sull'utilizzo per SIO_ADDRESS_LIST_SORT.
Parametri
Il buffer passato a SIO_ADDRESS_LIST_SORT è una struttura SOCKET_ADDRESS_LIST. Ogni SOCKET_ADDRESS nell'elenco deve essere in formato SOCKADDR_IN6.
Il SIO_ADDRESS_LIST_SORT IOCTL ordina sia gli indirizzi IPv6 che IPv4 in Windows Vista e versioni successive. Qualsiasi indirizzo IPv4 nell'elenco da ordinare deve essere nel formato di indirizzo IPv4 mappato a IPv6. Per altre informazioni sul formato di indirizzo IPv6 mappato a IPv4, vedere Dual-Stack Sockets.
In Windows Server 2003 e Windows XP SIO_ADDRESS_LIST_SORT ordina solo indirizzi IPv6. Gli indirizzi IPv4 nel formato di indirizzi IPv4 mappati a IPv6 non sono supportati.
Nell'output, il iAddressCount membro della struttura SOCKET_ADDRESS_LIST può essere inferiore rispetto all'input se il codice IOCTL determina che alcuni indirizzi di destinazione non sono validi.
Determinazione dell'ordinamento
L'ordine di ordinamento per gli indirizzi IPv6 per il SIO_ADDRESS_LIST_SORT IOCTL si basa sulla tabella delle politiche di prefisso. La tabella dei criteri di prefisso viene configurata usando l'utilità della riga di comando Netsh.exe. I frammenti di riga di comando seguenti illustrano i comandi di configurazione della tabella dei criteri di prefisso Netsh.exe di base:
netsh interface ipv6 show prefixpolicies
netsh interface ipv6 add prefixpolicy ::/96 3 4
netsh interface ipv6 delete prefixpolicy ::/96
netsh interface ipv6 set prefixpolicy ::/96 3 4
Nota
In Windows Server 2003 e Windows XP il primo comando netsh elencato in precedenza era il seguente. Tutti gli altri comandi correlati sono gli stessi.
netsh interface ipv6 show prefixpolicy
L'ordinamento degli indirizzi è determinato anche da un algoritmo descritto nella RFC 3484 in Selezione indirizzi predefinita per Internet Protocol versione 6 (IPv6) pubblicato da IETF. Per altre informazioni, vedere https://www.ietf.org/rfc/rfc3484.txt. Questa risorsa può essere disponibile solo in inglese.
Il SIO_ADDRESS_LIST_SORT IOCTL ordina gli indirizzi dal migliore al peggiore e compila i membri sin6_scope_id, se necessario. Per gli indirizzi locali del sito, SIO_ADDRESS_LIST_SORT riempie il campo dell'ID ambito o rimuove l'indirizzo.
Il SIO_ADDRESS_LIST_SORT IOCTL ignora l'indirizzo di origine associato al socket e ordina solo in base all'elenco di indirizzi di destinazione passato come parametro.
La funzione CreateSortedAddressPairs deve essere usata anziché SIO_ADDRESS_LIST_SORT IOCTL in Windows Vista e versioni successive. La funzione CreateSortedAddressPairs restituisce un elenco di coppie di indirizzi che contiene un indirizzo di origine locale e un indirizzo di destinazione. Fornisce a un'applicazione l'indirizzo di origine corretto da usare per ogni indirizzo di destinazione. Un'applicazione può anche filtrare i risultati cercando un indirizzo di origine specifico. nei risultati.
Requisiti
Il SIO_ADDRESS_LIST_SORT IOCTL è definito nel file di intestazione Winsock2.h. In Microsoft Windows Software Development Kit (SDK) rilasciato per Windows Vista e versioni successive, l'organizzazione dei file di intestazione è stata modificata e SIO_ADDRESS_LIST_SORT IOCTL è definito nel file di intestazione Ws2def.h. Si noti che il file di intestazione Ws2def.h viene incluso automaticamente in Winsock2.he non deve mai essere usato direttamente.
Il SIO_ADDRESS_LIST_SORT IOCTL è supportato in Windows XP e versioni successive.
Argomenti correlati