IPPROTO_IPV6 socketalternativ
I följande tabeller beskrivs IPPROTO_IPV6 socketalternativ som gäller för socketar som skapats för IPv6-adressfamiljen (AF_INET6). Se getsockopt och setsockopt funktionsreferenssidor för mer information om hur du hämtar och ställer in socketalternativ.
Om du vill räkna upp protokoll och identifiera egenskaper som stöds för varje installerat protokoll använder du funktionen WSAEnumProtocols, WSCEnumProtocolseller WSCEnumProtocols32.
Vissa socketalternativ kräver mer förklaring än vad dessa tabeller kan förmedla. sådana alternativ innehåller länkar till ytterligare information.
Alternativ
Alternativ | få | ställa | Optvaltyp | Beskrivning |
---|---|---|---|---|
IP_ORIGINAL_ARRIVAL_IF | Ja | Ja | DWORD (booleskt) | Anger om funktionen LPFN_WSARECVMSG (WSARecvMsg) ska returnera valfria kontrolldata som innehåller det ursprungliga ankomstgränssnittet där paketet togs emot för datagram-socketar. Det här alternativet används med till exempel IPv6-övergångstekniker (6to4-, ISATAP- och Teredo-tunnlar) som tillhandahåller adresstilldelning och automatisk tunneltrafik från värd till värd för unicast IPv6-trafik när IPv6-värdar måste passera IP4-nätverk för att nå andra IPv6-nätverk. IPv6-paket skickas i tunnel som IPv4-paket. Med det här alternativet kan det ursprungliga IPv4-gränssnittet där paketet togs emot returneras i WSAMSG- struktur. |
IPV6_ADD_IFLIST | Ja | DWORD (IF_INDEX) | Lägger till ett gränssnittsindex i den IFLIST som är associerad med alternativet IP_IFLIST. | |
IPV6_ADD_MEMBERSHIP | Ja | ipv6_mreq | Anslut socketen till den angivna multicast-gruppen i det angivna gränssnittet. Det här alternativet är endast giltigt för datagram och råa socketar (sockettypen måste vara SOCK_DGRAM eller SOCK_RAW). | |
IPV6_DEL_IFLIST | Ja | DWORD (IF_INDEX) | Tar bort ett gränssnittsindex från den IFLIST som är associerad med alternativet IP_IFLIST. Poster kan bara tas bort av programmet, så tänk på att poster kan bli inaktuella när ett gränssnitt har tagits bort. | |
IPV6_DROP_MEMBERSHIP | Ja | ipv6_mreq | Lämna den angivna multicast-gruppen från det angivna gränssnittet. Det här alternativet är endast giltigt för datagram och råa socketar (sockettypen måste vara SOCK_DGRAM eller SOCK_RAW). | |
IPV6_GET_IFLIST | Ja | DWORD[] (IF_INDEX[]) | Hämtar aktuell IFLIST som är associerad med alternativet IP_IFLIST. Returnerar fel om IP_IFLIST inte är aktiverat. | |
IPV6_HDRINCL | Ja | Ja | DWORD(booleskt) | Anger att programmet innehåller IPv6-huvudet för alla utgående data. Om parametern optval är inställd på 1 på anropet till setsockoptär alternativet aktiverat. Om optval är inställt på 0inaktiveras alternativet. Standardvärdet är inaktiverat. Det här alternativet är endast giltigt för datagram och råa socketar (sockettypen måste vara SOCK_DGRAM eller SOCK_RAW). En TCP/IP-tjänstleverantör som stöder SOCK_RAW bör också ha stöd för IPV6_HDRINCL. |
IPV6_HOPLIMIT | Ja | Ja | DWORD (booleskt) | Anger att TTL-information (hop) ska returneras i funktionen LPFN_WSARECVMSG (WSARecvMsg). Om optval är inställt på 1 på anropet till setsockoptär alternativet aktiverat. Om värdet är 0inaktiveras alternativet. Det här alternativet är endast giltigt för datagram och råa socketar (sockettypen måste vara SOCK_DGRAM eller SOCK_RAW). |
IPV6_IFLIST | Ja | Ja | DWORD (booleskt) | Hämtar eller anger socketens IP_IFLIST tillstånd. När det här alternativet är inställt på true är Datagram-mottagningen begränsad till gränssnitt som finns i IFLIST. Datagram som tas emot på andra gränssnitt ignoreras. IFLIST börjar tomt. Använd IP_ADD_IFLIST och IP_DEL_IFLIST för att redigera IFLIST. |
IPV6_JOIN_GROUP | Ja | ipv6_mreq | Samma som IPV6_ADD_MEMBERSHIP | |
IPV6_LEAVE_GROUP | Ja | ipv6_mreq | Samma som IPV6_DROP_MEMBERSHIP | |
IPV6_MTU | Ja | DWORD | Hämtar systemets uppskattning av sökvägen MTU. Socket måste vara ansluten. | |
IPV6_MTU_DISCOVER | Ja | Ja | DWORD (PMTUD_STATE) | Hämtar eller anger sökvägens MTU-identifieringstillstånd för socketen. Standardvärdet är IP_PMTUDISC_NOT_SET. För stream sockets utför IP_PMTUDISC_NOT_SET och IP_PMTUDISC_DO sökvägen MTU-identifiering. IP_PMTUDISC_DONT och IP_PMTUDISC_PROBE inaktiverar MTU-identifiering av sökväg. För datagram sockets, om det är inställt på IP_PMTUDISC_DO , resulterar försök att skicka paket som är större än sökvägen MTU till ett fel. Om det är inställt på IP_PMTUDISC_DONTfragmenteras paketen enligt gränssnittets MTU. Om värdet är IP_PMTUDISC_PROBEresulterar försök att skicka paket som är större än gränssnittets MTU på ett fel. |
IPV6_MULTICAST_HOPS | Ja | Ja | DWORD | Hämtar eller anger det TTL-värde som är associerat med IPv6 multicast-trafik på socketen. Det är inte tillåtet att ange TTL till ett värde större än 255. Det här alternativet är endast giltigt för datagram och råa socketar (sockettypen måste vara SOCK_DGRAM eller SOCK_RAW). |
IPV6_MULTICAST_IF | Ja | Ja | DWORD | Hämtar eller anger det utgående gränssnittet för att skicka IPv6 multicast-trafik. Det här alternativet ändrar inte standardgränssnittet för att ta emot IPv6 multicast-trafik. Det här alternativet är viktigt för datorer med flera datorer. Indatavärdet för att ange det här alternativet är ett 4-bytes gränssnittsindex för önskat utgående gränssnitt i värdbyteordning. Funktionen GetAdaptersAddresses kan användas för att hämta information om gränssnittsindex. Om optval är inställt på NULL- vid anrop till setsockoptanvänds standardgränssnittet för IPv6. Om optval- är noll anges standardgränssnittet för att ta emot multicast för att skicka multicast-trafik. När du hämtar det här alternativet returnerar optval- det aktuella standardgränssnittsindexet för att skicka multicast IPv6-trafik i värdbyteordning. |
IPV6_MULTICAST_LOOP | Ja | Ja | DWORD (booleskt) | Anger att multicast-data som skickas på socketen kommer att upprepas till socketarna som tar emot bufferten om den också är ansluten till mål-multicast-gruppen. Om optval är inställt på 1 på anropet till setsockoptär alternativet aktiverat. Om värdet är 0inaktiveras alternativet. Det här alternativet är endast giltigt för datagram och råa socketar (sockettypen måste vara SOCK_DGRAM eller SOCK_RAW). |
IPV6_PKTINFO | Ja | Ja | DWORD (booleskt) | Anger att paketinformation ska returneras av funktionen LPFN_WSARECVMSG (WSARecvMsg). |
IPV6_PROTECTION_LEVEL | Ja | Ja | INT | Möjliggör begränsning av en socket till ett angivet omfång, till exempel adresser med samma lokala länk eller platslokalt prefix. Innehåller olika begränsningsnivåer och standardinställningar. Mer information finns i IPV6_PROTECTION_LEVEL. |
IPV6_RECVIF | Ja | Ja | DWORD (booleskt) | Anger om IP-stacken ska fylla kontrollbufferten med information om vilket gränssnitt som tog emot ett paket med en datagram-socket. När det här värdet är sant returnerar funktionen LPFN_WSARECVMSG (WSARecvMsg) valfria kontrolldata som innehåller gränssnittet där paketet togs emot för datagram-socketar. Med det här alternativet kan IPv6-gränssnittet där paketet togs emot returneras i WSAMSG- struktur. Det här alternativet är endast giltigt för datagram och råa socketar (sockettypen måste vara SOCK_DGRAM eller SOCK_RAW). |
IPV6_RECVTCLASS | Ja | Ja | DWORD (booleskt) | Anger om IP-stacken ska fylla kontrollbufferten med ett meddelande som innehåller fältet Traffic Class IPv6-huvud på ett mottaget datagram. När det här värdet är sant returnerar funktionen LPFN_WSARECVMSG (WSARecvMsg) valfria kontrolldata som innehåller fältet Traffic Class IPv6-sidhuvud för det mottagna datagrammet. Med det här alternativet kan fältet Traffic Class IPv6-huvud i det mottagna datagrammet returneras i WSAMSG- struktur. Den returnerade meddelandetypen är IPV6_TCLASS. Alla DSCP- och ECN-bitar i fältet Trafikklass returneras. Det här alternativet är endast giltigt för datagramsocketer (sockettypen måste vara SOCK_DGRAM). |
IPV6_RECVECN | Ja | Ja | DWORD (booleskt) | Anger om IP-stacken ska fylla kontrollbufferten med ett meddelande som innehåller ECN-bitarna i fältet Traffic Class IPv6-huvud på ett mottaget datagram. När det här värdet är sant returnerar funktionen LPFN_WSARECVMSG (WSARecvMsg) valfria kontrolldata som innehåller ECN-bitarna i fältet Traffic Class IPv6-huvudfält för det mottagna datagrammet. Med det här alternativet kan ECN-bitarna i fältet Traffic Class IPv6-huvud i det mottagna datagrammet returneras i WSAMSG- struktur. Den returnerade meddelandetypen är IPV6_ECN. Alla 2 ECN-bitar i fältet Trafikklass returneras. Det här alternativet är endast giltigt för datagram och råa socketar (sockettypen måste vara SOCK_DGRAM eller SOCK_RAW). För typsäkerhet bör du använda funktionerna WSAGetRecvIPEcn och WSASetRecvIPEcn i stället för att använda socketalternativet direkt. |
IPV6_UNICAST_HOPS | Ja | Ja | DWORD | Hämtar eller anger det aktuella TTL-värdet som är associerat med IPv6-socketen för unicast-trafik. Det är inte tillåtet att ange TTL till ett värde större än 255. |
IPV6_UNICAST_IF | Ja | Ja | DWORD (IF_INDEX) | Hämtar eller anger det utgående gränssnittet för att skicka IPv6-trafik. Det här alternativet ändrar inte standardgränssnittet för att ta emot IPv6-trafik. Det här alternativet är viktigt för datorer med flera datorer. Indatavärdet för att ange det här alternativet är ett 4-bytes gränssnittsindex för önskat utgående gränssnitt i värdbyteordning. Funktionen GetAdaptersAddresses kan användas för att hämta information om gränssnittsindex. Om optval- är noll är standardgränssnittet för att skicka IPv6-trafik inställt på ospecificerad. När du hämtar det här alternativet returnerar optval- det aktuella standardgränssnittsindexet för att skicka IPv6-trafik i värdbyteordning. |
IPV6_USER_MTU | Ja | Ja | DWORD | Hämtar eller anger en övre gräns på IP-lager-MTU (i byte) för den angivna socketen. Om värdet är högre än systemets uppskattning av sökvägen MTU (som du kan hämta på en ansluten socket genom att fråga alternativet IPV6_MTU socket) har alternativet ingen effekt. Om värdet är lägre kommer utgående paket som är större än detta att fragmenteras eller misslyckas med att skicka, beroende på värdet för IPV6_DONTFRAG. Standardvärdet är IP_UNSPECIFIED_USER_MTU (MAXULONG). För typsäkerhet bör du använda funktionerna WSAGetIPUserMtu och WSASetIPUserMtu i stället för att använda socketalternativet direkt. |
IPV6_V6ONLY | Ja | Ja | DWORD (booleskt) | Anger om en socket som skapats för AF_INET6-adressfamiljen endast är begränsad till IPv6-kommunikation. Sockets som skapats för AF_INET6-adressfamiljen kan användas för både IPv6- och IPv4-kommunikation. Vissa program kanske bara vill begränsa användningen av en socket som skapats för AF_INET6-adressfamiljen till IPv6-kommunikation. När det här värdet inte är noll (standardvärdet i Windows) kan en socket som skapats för AF_INET6-adressfamiljen endast användas för att skicka och ta emot IPv6-paket. När det här värdet är noll kan en socket som skapats för AF_INET6-adressfamiljen användas för att skicka och ta emot paket till och från en IPv6-adress eller en IPv4-adress. Observera att möjligheten att interagera med en IPv4-adress kräver användning av IPv4-mappade adresser. Det här socketalternativet stöds i Windows Vista eller senare. |
Windows-stöd för IPPROTO_IPV6 socketalternativ
Alternativ | Windows 8 | Windows Server 2012 | Windows 7 | Windows Server 2008 | Windows Vista |
---|---|---|---|---|---|
IP_ORIGINAL_ARRIVAL_IF | Ja | Ja | Ja | ||
IPV6_ADD_IFLIST | Från och med Windows 10 version 1803 | ||||
IPV6_ADD_MEMBERSHIP | Ja | Ja | Ja | Ja | Ja |
IPV6_DEL_IFLIST | Från och med Windows 10 version 1803 | ||||
IPV6_DROP_MEMBERSHIP | Ja | Ja | Ja | Ja | Ja |
IPV6_GET_IFLIST | Från och med Windows 10 version 1803 | ||||
IPV6_HDRINCL | Ja | Ja | Ja | Ja | Ja |
IPV6_HOPLIMIT | Ja | Ja | Ja | Ja | Ja |
IPV6_IFLIST | Från och med Windows 10 version 1803 | ||||
IPV6_JOIN_GROUP | Ja | Ja | Ja | Ja | Ja |
IPV6_LEAVE_GROUP | Ja | Ja | Ja | Ja | Ja |
IPV6_MULTICAST_HOPS | Ja | Ja | Ja | Ja | Ja |
IPV6_MULTICAST_IF | Ja | Ja | Ja | Ja | Ja |
IPV6_MULTICAST_LOOP | Ja | Ja | Ja | Ja | Ja |
IPV6_PKTINFO | Ja | Ja | Ja | Ja | Ja |
IPV6_PROTECTION_LEVEL | Ja | Ja | Ja | Ja | Ja |
IPV6_RECVIF | Ja | Ja | Ja | Ja | Ja |
IPV6_UNICAST_HOPS | Ja | Ja | Ja | Ja | Ja |
IPV6_UNICAST_IF | Ja | Ja | Ja | Ja | Ja |
IPV6_V6ONLY | Ja | Ja | Ja | Ja | Ja |
Alternativ | Windows Server 2003 | Windows XP |
---|---|---|
IP_ORIGINAL_ARRIVAL_IF | ||
IPV6_ADD_IFLIST | ||
IPV6_ADD_MEMBERSHIP | Ja | Ja |
IPV6_DEL_IFLIST | ||
IPV6_DROP_MEMBERSHIP | Ja | Ja |
IPV6_GET_IFLIST | ||
IPV6_HDRINCL ja | Ja | |
IPV6_HOPLIMIT ja | Ja | |
IPV6_IFLIST | ||
IPV6_JOIN_GROUP | Ja | Ja |
IPV6_LEAVE_GROUP | Ja | Ja |
IPV6_MULTICAST_HOPS | Ja | Ja |
IPV6_MULTICAST_IF | Ja | Ja |
IPV6_MULTICAST_LOOP | Ja | Ja |
IPV6_PKTINFO | Ja | Ja |
IPV6_PROTECTION_LEVEL | Ja | Ja |
IPV6_RECVIF | ||
IPV6_UNICAST_HOPS | Ja | Ja |
IPV6_UNICAST_IF | ||
IPV6_V6ONLY |
Anmärkningar
I Microsoft Windows Software Development Kit (SDK) som släpptes för Windows Vista och senare har organisationen av huvudfiler ändrats och IPPROTO_IPV6 nivå definieras i Ws2def.h rubrikfil som automatiskt ingår i Winsock2.h-huvudfilen. Alternativen för IPPROTO_IPV6 socket definieras i Ws2ipdef.h huvudfil som automatiskt ingår i Ws2tcpip.h-huvudfilen. Ws2def.h och Ws2ipdef.h huvudfiler bör aldrig användas direkt.
Alternativet IP_ORIGINAL_ARRIVAL_IF socket stöds på Windows Server 2008 R2 och windows 7.
Krav
Krav | Värde |
---|---|
Rubrik |
|