Bagikan melalui


Menggunakan SIO_ADDRESS_LIST_SORT

IOCTL SIO_ADDRESS_LIST_SORT memungkinkan pengembang aplikasi untuk mengurutkan daftar alamat tujuan IPv6 dan IPv4 untuk menentukan alamat terbaik yang tersedia untuk membuat koneksi. IOCTL SIO_ADDRESS_LIST_SORT didukung pada Windows XP dan yang lebih baru.

Pada Windows Vista dan yang lebih baru, fungsi CreateSortedAddressPairs mengambil daftar alamat tujuan IP potensial yang disediakan, memasangkan alamat tujuan dengan alamat IP lokal komputer host, dan mengurutkan pasangan sesuai dengan pasangan alamat mana yang paling cocok untuk komunikasi antara dua rekan. Fungsi CreateSortedAddressPairs harus digunakan alih-alih SIO_ADDRESS_LIST_SORT IOCTL pada Windows Vista dan yang lebih baru.

Bagian berikut menjelaskan pertimbangan penggunaan untuk SIO_ADDRESS_LIST_SORT.

Parameter

Buffer yang diteruskan ke SIO_ADDRESS_LIST_SORT adalah struktur SOCKET_ADDRESS_LIST . Setiap SOCKET_ADDRESS dalam daftar harus dalam format SOCKADDR_IN6.

IOCTL SIO_ADDRESS_LIST_SORT mengurutkan alamat IPv6 dan IPv4 di Windows Vista dan yang lebih baru. Alamat IPv4 apa pun dalam daftar yang akan diurutkan harus dalam format alamat IPv6 yang dipetakan IPv4. Untuk informasi selengkapnya tentang format alamat IPv6 yang dipetakan IPv4, lihat Soket Tumpukan Ganda.

Pada Windows Server 2003, dan Windows XP, SIO_ADDRESS_LIST_SORT hanya mengurutkan alamat IPv6. Alamat IPv4 dalam format alamat IPv6 yang dipetakan IPv4 tidak didukung.

Pada output, anggota iAddressCount dari struktur SOCKET_ADDRESS_LIST mungkin lebih kecil dari pada input jika kode IOCTL menentukan bahwa beberapa alamat tujuan tidak valid.

Penentuan Pengurutan

Urutan pengurutan untuk alamat IPv6 untuk SIO_ADDRESS_LIST_SORT IOCTL didasarkan pada tabel kebijakan awalan. Tabel kebijakan awalan dikonfigurasi menggunakan utilitas baris perintah Netsh.exe . Cuplikan baris perintah berikut mengilustrasikan perintah konfigurasi tabel kebijakan awalan Netsh.exe dasar:

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

Catatan

Pada Windows Server 2003 dan Windows XP, perintah netsh pertama yang tercantum di atas adalah sebagai berikut. Semua perintah terkait lainnya sama.

 

netsh interface ipv6 show prefixpolicy

Urutan alamat juga ditentukan oleh algoritma yang diuraikan dalam RFC 3484 pada Pemilihan Alamat Default untuk Protokol Internet versi 6 (IPv6) yang diterbitkan oleh IETF. Untuk informasi selengkapnya, lihat https://www.ietf.org/rfc/rfc3484.txt. (Sumber daya ini mungkin hanya tersedia dalam bahasa Inggris.)

IOCTL SIO_ADDRESS_LIST_SORT mengurutkan alamat dari yang terbaik ke terburuk, dan mengisi anggota sin6_scope_id, jika diperlukan. Untuk alamat lokal situs, SIO_ADDRESS_LIST_SORT mengisi id cakupan, atau menghapus alamat.

IOCTL SIO_ADDRESS_LIST_SORT mengabaikan alamat sumber yang terikat ke soket dan hanya mengurutkan menurut daftar alamat tujuan yang diteruskan sebagai parameter.

Fungsi CreateSortedAddressPairs harus digunakan alih-alih SIO_ADDRESS_LIST_SORT IOCTL pada Windows Vista dan yang lebih baru. Fungsi CreateSortedAddressPairs mengembalikan daftar pasangan alamat yang berisi alamat sumber lokal dan alamat tujuan. Ini menyediakan aplikasi alamat sumber yang benar untuk digunakan untuk setiap alamat tujuan. Aplikasi juga dapat memfilter hasilnya dengan mencari alamat sumber tertentu. dalam hasilnya.

Persyaratan

IOCTL SIO_ADDRESS_LIST_SORT didefinisikan dalam file header Winsock2.h. Pada Kit Pengembangan Perangkat Lunak (SDK) Microsoft Windows yang dirilis untuk Windows Vista dan yang lebih baru, organisasi file header telah berubah dan SIO_ADDRESS_LIST_SORT IOCTL didefinisikan dalam file header Ws2def.h . Perhatikan bahwa file header Ws2def.h secara otomatis disertakan dalam Winsock2.h, dan tidak boleh digunakan secara langsung.

IOCTL SIO_ADDRESS_LIST_SORT didukung pada Windows XP dan yang lebih baru.

CreateSortedAddressPairs