IPPROTO_IPV6 通訊端選項
下表說明 套 用至針對 IPv6 位址系列建立的通訊端 (AF_INET6) IPPROTO_IPV6通訊端選項。 如需取得和設定通訊端選項的詳細資訊,請參閱 getsockopt 和 setsockopt 函式參考頁面。
若要列舉通訊協定並探索每個已安裝通訊協定的支援屬性,請使用 WSAEnumProtocols、 WSCEnumProtocols或 WSCEnumProtocols32 函式。
某些通訊端選項需要比這些資料表所能傳達更多的說明;這類選項包含其他資訊的連結。
選項。
選項 | get | set | Optval 類型 | 描述 |
---|---|---|---|---|
IP_ORIGINAL_ARRIVAL_IF | 是 | 是 | DWORD (布林值) | 指出 LPFN_WSARECVMSG (WSARecvMsg) 函式是否應該傳回選擇性的控制資料,其中包含針對資料包通訊端接收封包的原始抵達介面。 此選項與 IPv6 轉換技術搭配使用, (6to4、ISATAP 和 Teredo 通道,例如,) 提供位址指派和單播 IPv6 流量的主機對主機自動通道,當 IPv6 主機必須周遊 IP4 網路才能連線到其他 IPv6 網路時。 IPv6 封包是以通道方式傳送為 IPv4 封包。 此選項允許在 WSAMSG 結構中傳回封包的原始 IPv4 介面。 |
IPV6_ADD_IFLIST | 是 | DWORD (IF_INDEX) | 將介面索引新增至與 IP_IFLIST 選項相關聯的 IFLIST。 | |
IPV6_ADD_MEMBERSHIP | 是 | ipv6_mreq | 將通訊端加入指定介面上提供的多播群組。 此選項只有在通訊端類型必須SOCK_DGRAM或SOCK_RAW) ,才能在資料包和原始通訊端 (有效。 | |
IPV6_DEL_IFLIST | 是 | DWORD (IF_INDEX) | 從與 IP_IFLIST 選項相關聯的 IFLIST 中移除介面索引。 專案只能由應用程式移除,因此請注意,移除介面之後,專案可能會過時。 | |
IPV6_DROP_MEMBERSHIP | 是 | ipv6_mreq | 將提供的多播群組從指定的介面保留。 此選項只有在通訊端類型必須SOCK_DGRAM或SOCK_RAW) ,才能在資料包和原始通訊端 (有效。 | |
IPV6_GET_IFLIST | 是 | DWORD[] (IF_INDEX[]) | 取得與 IP_IFLIST 選項相關聯的目前 IFLIST。 如果未啟用 IP_IFLIST ,則傳回錯誤。 | |
IPV6_HDRINCL | 是 | 是 | DWORD (布林值) | 指出應用程式在所有傳出資料上提供 IPv6 標頭。 如果在對 setsockopt的呼叫上將 optval參數設定為1,則會啟用 選項。 如果 optval 設定為 0,則會停用選項。 預設值為已停用。 只有在通訊端類型必須SOCK_DGRAM或SOCK_RAW) ,這個選項才適用于資料包和原始通訊端 (。 支援SOCK_RAW的 TCP/IP 服務提供者也應該支援IPV6_HDRINCL。 |
IPV6_HOPLIMIT | 是 | 是 | DWORD (布林值) | 指出LPFN_WSARECVMSG (WSARecvMsg ) 函式中應該傳回躍點 (TTL) 資訊。 如果在對 setsockopt的呼叫上將 optval設定為1,則會啟用 此選項。 如果設定為 0,則會停用選項。 只有在通訊端類型必須SOCK_DGRAM或SOCK_RAW) ,這個選項才適用于資料包和原始通訊端 (。 |
IPV6_IFLIST | 是 | 是 | DWORD (布林值) | 取得或設定 通訊端的IP_IFLIST 狀態。 當此選項設定為 true 時,Datagram 接收會限制為 IFLIST 中的介面。 會忽略任何其他介面上收到的資料包。 IFLIST 會啟動空白。 使用 IP_ADD_IFLIST 和 IP_DEL_IFLIST 來編輯 IFLIST。 |
IPV6_JOIN_GROUP | 是 | ipv6_mreq | 與IPV6_ADD_MEMBERSHIP相同 | |
IPV6_LEAVE_GROUP | 是 | ipv6_mreq | 與IPV6_DROP_MEMBERSHIP相同 | |
IPV6_MTU | 是 | DWORD | 取得系統路徑 MTU 的估計值。 通訊端必須連接。 | |
IPV6_MTU_DISCOVER | 是 | 是 | DWORD (PMTUD_STATE) | 取得或設定通訊端的路徑 MTU 探索狀態。 預設值 為 IP_PMTUDISC_NOT_SET。 針對資料流程通訊端, IP_PMTUDISC_NOT_SET 和 IP_PMTUDISC_DO 將會執行路徑 MTU 探索。 IP_PMTUDISC_DONT 和 IP_PMTUDISC_PROBE 將會關閉路徑 MTU 探索。 對於資料包通訊端,如果設定為 IP_PMTUDISC_DO ,則嘗試傳送大於路徑 MTU 的封包將會產生錯誤。 如果設定為 IP_PMTUDISC_DONT,則會根據介面 MTU 分散封包。 如果設定為 IP_PMTUDISC_PROBE,嘗試傳送大於介面 MTU 的封包將會導致錯誤。 |
IPV6_MULTICAST_HOPS | 是 | 是 | DWORD | 取得或設定與通訊端上的 IPv6 多播流量相關聯的 TTL 值。 將 TTL 設定為大於 255 的值不合法。 此選項僅適用于資料包和原始通訊端, (通訊端類型必須SOCK_DGRAM或SOCK_RAW) 。 |
IPV6_MULTICAST_IF | 是 | 是 | DWORD | 取得或設定傳送 IPv6 多播流量的傳出介面。 此選項不會變更接收 IPv6 多播流量的預設介面。 此選項對於多路電腦很重要。 設定此選項的輸入值是以主機位元組順序為所需傳出介面的 4 位元組介面索引。 GetAdaptersAddresses函式可用來取得介面索引資訊。 如果optval在呼叫setockopt時設定為Null,則會使用預設的 IPv6 介面。 如果 optval 為零,則會指定接收多播的預設介面來傳送多播流量。 取得此選項時, optval 會傳回目前的預設介面索引,以主機位元組順序傳送多播 IPv6 流量。 |
IPV6_MULTICAST_LOOP | 是 | 是 | DWORD (布林值) | 指出在通訊端上傳送的多播資料會在目的地多播群組上聯結時,回應通訊端接收緩衝區。 如果在對setockopt的呼叫上將optval設定為1,則會啟用此選項。 如果設定為 0,則會停用選項。 此選項僅適用于資料包和原始通訊端, (通訊端類型必須SOCK_DGRAM或SOCK_RAW) 。 |
IPV6_PKTINFO | 是 | 是 | DWORD (布林值) | 表示封包資訊應該由 LPFN_WSARECVMSG (WSARecvMsg) 函式傳回。 |
IPV6_PROTECTION_LEVEL | 是 | 是 | INT | 啟用通訊端對指定範圍的限制,例如具有相同連結本機或月臺本機前置詞的位址。 提供各種限制層級和預設設定。 如需詳細資訊 ,請參閱IPV6_PROTECTION_LEVEL 。 |
IPV6_RECVIF | 是 | 是 | DWORD (布林值) | 指出 IP 堆疊是否應該填入控制緩衝區,其中包含哪些介面收到具有資料包通訊端封包的詳細資料。 當此值為 true 時, LPFN_WSARECVMSG (WSARecvMsg) 函式會傳回選擇性的控制資料,其中包含接收資料包通訊端封包的介面。 此選項允許在 WSAMSG 結構中傳回封包的 IPv6 介面。 此選項僅適用于資料包和原始通訊端, (通訊端類型必須SOCK_DGRAM或SOCK_RAW) 。 |
IPV6_RECVTCLASS | 是 | 是 | DWORD (布林值) | 指出 IP 堆疊是否應該在接收的資料包上填入包含流量類別 IPv6 標頭欄位的訊息來填入控制緩衝區。 當此值為 true 時, LPFN_WSARECVMSG (WSARecvMsg) 函式會傳回選擇性的控制資料,其中包含所接收資料包的流量類別 IPv6 標頭域值。 此選項可讓接收資料包的流量類別 IPv6 標頭欄位在 WSAMSG 結構中傳回。 傳回的訊息類型將會IPV6_TCLASS。 將會傳回流量類別欄位的所有 DSCP 和 ECN 位。 只有在通訊端類型必須SOCK_DGRAM) ,此選項才對資料包通訊端有效 (。 |
IPV6_UNICAST_HOPS | 是 | 是 | DWORD | 取得或設定與單播流量之 IPv6 通訊端相關聯的目前 TTL 值。 將 TTL 設定為大於 255 的值不合法。 |
IPV6_UNICAST_IF | 是 | 是 | DWORD (IF_INDEX) | 取得或設定傳送 IPv6 流量的傳出介面。 此選項不會變更接收 IPv6 流量的預設介面。 此選項對於多路電腦很重要。 設定此選項的輸入值是以主機位元組順序為所需傳出介面的 4 位元組介面索引。 GetAdaptersAddresses函式可用來取得介面索引資訊。 如果 optval 為零,傳送 IPv6 流量的預設介面會設定為未指定。 取得此選項時, optval 會傳回目前的預設介面索引,以主機位元組順序傳送 IPv6 流量。 |
IPV6_USER_MTU | 是 | 是 | DWORD | 取得或設定指定通訊端的 IP 層 MTU (以位元組為單位的上限) 。 如果此值高於系統估計路徑 MTU (您可以藉由查詢 IPV6_MTU 通訊端選項) 來擷取連線通訊端,則選項不會有任何作用。 如果值較低,則大於此的輸出封包將會分散,或無法傳送,視 IPV6_DONTFRAG的值而定。 預設值 IP_UNSPECIFIED_USER_MTU ( MAXULONG) 。 針對型別安全,您應該使用 WSAGetIPUserMtu 和 WSASetIPUserMtu 函式,而不是直接使用通訊端選項。 |
IPV6_V6ONLY | 是 | 是 | DWORD (布林值) | 指出針對 AF_INET6 位址家族建立的通訊端是否限制僅供 IPv6 通訊使用。 針對 AF_INET6 位址家族建立的通訊端,可同時提供 IPv6 及 IPv4 通訊使用。 某些應用程式可能希望將使用限制在針對 AF_INET6 位址家族所建立的通訊端,以及僅提供 IPv6 通訊使用。 當此值為非零 (Windows) 上的預設值時,為AF_INET6位址系列建立的通訊端只能用來傳送和接收 IPv6 封包。 如果這個值為零,則針對 AF_INET6 位址家族建立的通訊端,可用來傳送和接收往返 IPv6 或 IPv4 位址的封包。 請注意,必須使用 IPv4 對應位址,才能發揮與 IPv4 位址互動的能力。 Windows Vista (含) 以後版本支援這個通訊端選項。 |
IPPROTO_IPV6通訊端選項的 Windows 支援
選項 | Windows 8 | Windows Server 2012 | Windows 7 | Windows Server 2008 | Windows Vista |
---|---|---|---|---|---|
IP_ORIGINAL_ARRIVAL_IF | x | x | x | ||
IPV6_ADD_IFLIST | 從 Windows 10 1803 版開始 | ||||
IPV6_ADD_MEMBERSHIP | x | x | x | x | x |
IPV6_DEL_IFLIST | 從 Windows 10 1803 版開始 | ||||
IPV6_DROP_MEMBERSHIP | x | x | x | x | x |
IPV6_GET_IFLIST | 從 Windows 10 1803 版開始 | ||||
IPV6_HDRINCL | x | x | x | x | x |
IPV6_HOPLIMIT | x | x | x | x | x |
IPV6_IFLIST | 從 Windows 10 1803 版開始 | ||||
IPV6_JOIN_GROUP | x | x | x | x | x |
IPV6_LEAVE_GROUP | x | x | x | x | x |
IPV6_MULTICAST_HOPS | x | x | x | x | x |
IPV6_MULTICAST_IF | x | x | x | x | x |
IPV6_MULTICAST_LOOP | x | x | x | x | x |
IPV6_PKTINFO | x | x | x | x | x |
IPV6_PROTECTION_LEVEL | x | x | x | x | x |
IPV6_RECVIF | x | x | x | x | x |
IPV6_UNICAST_HOPS | x | x | x | x | x |
IPV6_UNICAST_IF | x | x | x | x | x |
IPV6_V6ONLY | x | x | x | x | x |
選項 | Windows Server 2003 | Windows XP |
---|---|---|
IP_ORIGINAL_ARRIVAL_IF | ||
IPV6_ADD_IFLIST | ||
IPV6_ADD_MEMBERSHIP | x | x |
IPV6_DEL_IFLIST | ||
IPV6_DROP_MEMBERSHIP | x | x |
IPV6_GET_IFLIST | ||
IPV6_HDRINCL x | x | |
IPV6_HOPLIMIT x | x | |
IPV6_IFLIST | ||
IPV6_JOIN_GROUP | x | x |
IPV6_LEAVE_GROUP | x | x |
IPV6_MULTICAST_HOPS | x | x |
IPV6_MULTICAST_IF | x | x |
IPV6_MULTICAST_LOOP | x | x |
IPV6_PKTINFO | x | x |
IPV6_PROTECTION_LEVEL | x | x |
IPV6_RECVIF | ||
IPV6_UNICAST_HOPS | x | x |
IPV6_UNICAST_IF | ||
IPV6_V6ONLY |
備註
在針對 Windows Vista 和更新版本發行的 Microsoft Windows 軟體發展工具組 (SDK) 上,標頭檔的組織已變更, IPPROTO_IPV6 層級定義在 Winsock2.h 標頭檔中自動包含在 Winsock2.h 標頭檔中。 IPPROTO_IPV6通訊端選項定義于Ws2ipdef.h標頭檔中,Ws2tcpip.h標頭檔中會自動包含。 不應該直接使用 Ws2def.h 和 Ws2ipdef.h 標頭檔。
Windows Server 2008 R2 以及 Windows 7 支援 IP_ORIGINAL_ARRIVAL_IF 通訊端選項。
規格需求
需求 | 值 |
---|---|
標頭 |
|
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應