Dela via


IPPROTO_IP socketalternativ

I följande tabeller beskrivs IPPROTO_IP socketalternativ som gäller för socketar som skapats för IPv4-adressfamiljen (AF_INET). 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 sidor.

Alternativ

Alternativ Ställa Optvaltyp Beskrivning
IP_ADD_IFLIST Ja DWORD (IF_INDEX) Lägger till ett gränssnittsindex i den IFLIST som är associerad med alternativet IP_IFLIST.
IP_ADD_MEMBERSHIP Ja ip_mreq Anslut socketen till den angivna multicast-gruppen i det angivna gränssnittet.
IP_ADD_SOURCE_MEMBERSHIP Ja ip_mreq_source Anslut den angivna multicast-gruppen i det angivna gränssnittet och acceptera data som kommer från den angivna källadressen.
IP_BLOCK_SOURCE Ja ip_mreq_source Tar bort den angivna källan som avsändare till den angivna multicast-gruppen och gränssnittet.
IP_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.
IP_DONTFRAGMENT Ja Ja DWORD (booleskt) Anger att data inte ska fragmenteras oavsett den lokala MTU:en. Gäller endast för meddelandeorienterade protokoll. Microsoft TCP/IP-leverantörer respekterar det här alternativet för UDP och ICMP.
IP_DROP_MEMBERSHIP Ja ip_mreq Lämnar den angivna multicast-gruppen från det angivna gränssnittet. Tjänstleverantörer måste ha stöd för det här alternativet när multicast stöds. Stöd anges i den WSAPROTOCOL_INFO struktur som returneras av ett WSAEnumProtocols funktionsanrop med följande: XPI_SUPPORT_MULTIPOINT=1, XP1_MULTIPOINT_CONTROL_PLANE=0, XP1_MULTIPOINT_DATA_PLANE=0.
IP_DROP_SOURCE_MEMBERSHIP Ja ip_mreq_source Släpper medlemskapet till den angivna multicast-gruppen, gränssnittet och källadressen.
IP_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.
IP_HDRINCL Ja Ja DWORD (booleskt) När värdet är inställt på TRUEanger att programmet tillhandahåller IP-huvudet. Gäller endast för SOCK_RAW socketar. TCP/IP-tjänstleverantören kan ange ID-fältet om värdet som tillhandahålls av programmet är noll. Alternativet IP_HDRINCL tillämpas endast på SOCK_RAW typ av protokoll. En TCP/IP-tjänstleverantör som stöder SOCK_RAW bör också stödja IP_HDRINCL.
IP_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.
IP_MTU Ja DWORD Hämtar systemets uppskattning av sökvägen MTU. Socket måste vara ansluten.
IP_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-socketar tvingar IP_PMTUDISC_DO alla utgående paket att ha DF-bituppsättningen och ett försök att skicka paket som är större än sökvägen MTU resulterar i ett fel. IP_PMTUDISC_DONT tvingar alla utgående paket att ha DF-biten inte inställd och paketen fragmenteras enligt gränssnittets MTU. IP_PMTUDISC_PROBE tvingar alla utgående paket att ha DF-biten inställd, och ett försök att skicka paket som är större än MTU-gränssnittet resulterar i ett fel.
IP_MULTICAST_IF Ja Ja DWORD Hämtar eller anger det utgående gränssnittet för att skicka IPv4-multicast-trafik. Det här alternativet ändrar inte standardgränssnittet för att ta emot IPv4 multicast-trafik. Indatavärdet för att ange det här alternativet är en IPv4-adress med 4 byte i nätverksbyteordning. Den här DWORD-parametern kan också vara ett gränssnittsindex i nätverksbyteordning. Alla IP-adresser i blocket 0.x.x.x (första oktetten av 0) förutom IPv4-adressen 0.0.0.0 behandlas som ett gränssnittsindex. Ett gränssnittsindex är ett 24-bitarsnummer och IPv4-adressblocket 0.0.0.0/8 används inte (det här intervallet är reserverat). Gränssnittsindexet kan användas för att ange standardgränssnittet för multicast-trafik för IPv4. 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-IPv4-trafik i värdbyteordning.
IP_MULTICAST_LOOP Ja Ja DWORD (booleskt) För en socket som är ansluten till en eller flera multicast-grupper styr detta om den ska ta emot en kopia av utgående paket som skickas till dessa multicast-grupper via det valda multicast-gränssnittet. Som standard är IP_MULTICAST_LOOP aktiverat (värde 1/TRUE), så sockets tar emot matchande multicast-paket som skickas av den aktuella datorn. Om du inaktiverar det här alternativet (genom att ange det till 0/FALSE) innebär det att denna socket inte tar emot multicasts som skickas från den lokala datorn, även om socketen är öppen i loopback-gränssnittet.

Detta är inte kompatibelt med POSIX-versionen av IP_MULTICAST_LOOP – alternativet måste anges på den mottagande socketen. medan POSIX-alternativet måste anges på den sändande socketen.
IP_MULTICAST_TTL Ja Ja DWORD Anger/hämtar TTL-värdet som är associerat med IP multicast-trafik i socketen.
IP_OPTIONS Ja Ja char [] Anger IP-alternativ som ska infogas i utgående paket. Om du anger nya alternativ skrivs alla tidigare angivna alternativ över. Om du ställer in optval till noll tar alla tidigare angivna alternativ bort. IP_OPTIONS support krävs inte. om du vill kontrollera om IP_OPTIONS stöds använder du getockopt för att hämta aktuella alternativ. Om getsockopt misslyckas stöds inte IP_OPTIONS.
IP_ORIGINAL_ARRIVAL_IF Ja Ja DWORD (booleskt) Anger om funktionen LPFN_WSARECVMSG (WSARecvMsg) ska returnera valfria kontrolldata som innehåller det ankomstgränssnitt där paketet togs emot för datagram-socketar. Med det här alternativet kan IPv4-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).
IP_PKTINFO Ja Ja DWORD Anger att paketinformation ska returneras av funktionen WSARecvMsg.
IP_RECEIVE_BROADCAST Ja Ja DWORD (booleskt) Tillåter eller blockerar sändningsmottagning.
IP_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 IPv4-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).
IP_RECVTOS Ja Ja DWORD (booleskt) Anger om IP-stacken ska fylla i kontrollbufferten med ett meddelande som innehåller fältet Typ av tjänst (TOS) IPv4-huvud på ett mottaget datagram. När det här värdet är sant returnerar funktionen LPFN_WSARECVMSG (WSARecvMsg) valfria kontrolldata som innehåller tos IPv4-sidhuvudfältvärdet för det mottagna datagrammet. Med det här alternativet kan TOS IPv4-huvudfältet i det mottagna datagrammet returneras i WSAMSG- struktur. Den returnerade meddelandetypen är IP_TOS. Alla DSCP- och ECN-bitar i TOS-fältet returneras. Det här alternativet är endast giltigt för datagramsocketer (sockettypen måste vara SOCK_DGRAM).
IP_RECVECN Ja Ja DWORD (booleskt) Anger om IP-stacken ska fylla kontrollbufferten med ett meddelande som innehåller ECN-bitarna i fältet Typ av tjänst (TOS) IPv4-sidhuvud 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 TOS IPv4-huvudfältvärdet för det mottagna datagrammet. Med det här alternativet kan ECN-bitarna i TOS IPv4-huvudfältet i det mottagna datagrammet returneras i WSAMSG- struktur. Den returnerade meddelandetypen är IP_ECN. Alla 2 ECN-bitar i TOS-fältet 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.
IP_RECVTTL 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).
IP_TOS Ja Ja DWORD (booleskt) Använd inte. Inställningar för typ av tjänst (TOS) bör endast anges med hjälp av API:et För tjänstkvalitet. Mer information finns i Differentierade tjänster i avsnittet Tjänstkvalitet i Platform SDK.
IP_TTL Ja Ja DWORD (booleskt) Ändrar standardvärdet som angetts av TCP/IP-tjänstprovidern i fältet TTL i IP-huvudet i utgående datagram. IP_TTL support krävs inte. om du vill kontrollera om IP_TTL stöds använder du getockopt för att hämta aktuella alternativ. Om getsockopt misslyckas stöds inte IP_TTL.
IP_UNBLOCK_SOURCE Ja ip_mreq_source Lägger till den angivna källan som avsändare i den angivna multicast-gruppen och gränssnittet.
IP_UNICAST_IF Ja Ja DWORD (IF_INDEX) Hämtar eller anger det utgående gränssnittet för att skicka IPv4-trafik. Det här alternativet ändrar inte standardgränssnittet för att ta emot IPv4-trafik. Det här alternativet är viktigt för datorer med flera datorer. Indatavärdet för att ange det här alternativet är en IPv4-adress med 4 byte i nätverksbyteordning. Den här DWORD-parametern måste vara ett gränssnittsindex i nätverksbyteordning. Alla IP-adresser i blocket 0.x.x.x (första oktetten av 0) förutom IPv4-adressen 0.0.0.0 behandlas som ett gränssnittsindex. Ett gränssnittsindex är ett 24-bitarsnummer och IPv4-adressblocket 0.0.0.0/8 används inte (det här intervallet är reserverat). Gränssnittsindexet kan användas för att ange standardgränssnittet för att skicka trafik för IPv4. Funktionen GetAdaptersAddresses kan användas för att hämta information om gränssnittsindex. Om optval är noll anges standardgränssnittet för att skicka trafik till ospecificerat. När du hämtar det här alternativet returnerar optval- det aktuella standardgränssnittsindexet för att skicka IPv4-trafik i värdbyteordning.
IP_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 IP_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 IP_DONTFRAGMENT. 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.
IP_WFP_REDIRECT_CONTEXT Ja Ja WSACMSGHDR med kontrolldata En datagram socket-underordnad datatyp (cmsg_type) för att ange omdirigeringskontexten för en UDP-socket som används av en WFP-omdirigeringstjänst (Windows Filtering Platform) i användarläge.
IP_WFP_REDIRECT_RECORDS Ja Ja WSACMSGHDR med kontrolldata En datagram socket-tillhörande datatyp (cmsg_type) för att ange omdirigeringsposten för en UDP-socket som används av en WFP-omdirigeringstjänst (Windows Filtering Platform) i användarläge.

Windows-stöd för IP_PROTO alternativ

Alternativ Windows 10 Windows 8 Windows Server 2012 Windows 7 Windows Server 2008 Windows Vista
IP_ADD_IFLIST Från och med Windows 10 version 1803
IP_ADD_MEMBERSHIP Ja Ja Ja Ja Ja Ja
IP_ADD_SOURCE_MEMBERSHIP Ja Ja Ja Ja Ja Ja
IP_BLOCK_SOURCE Ja Ja Ja Ja Ja Ja
IP_DEL_IFLIST Från och med Windows 10 version 1803
IP_DONTFRAGMENT Ja Ja Ja Ja Ja Ja
IP_DROP_MEMBERSHIP Ja Ja Ja Ja Ja Ja
IP_DROP_SOURCE_MEMBERSHIP Ja Ja Ja Ja Ja Ja
IP_GET_IFLIST Från och med Windows 10 version 1803
IP_HDRINCL Ja Ja Ja Ja Ja Ja
IP_IFLIST Från och med Windows 10 version 1803
IP_MULTICAST_IF Ja Ja Ja Ja Ja Ja
IP_MULTICAST_LOOP Ja Ja Ja Ja Ja Ja
IP_MULTICAST_TTL Ja Ja Ja Ja Ja Ja
IP_OPTIONS Ja Ja Ja Ja Ja Ja
IP_ORIGINAL_ARRIVAL_IF Ja Ja Ja Ja
IP_PKTINFO Ja Ja Ja Ja Ja Ja
IP_RECEIVE_BROADCAST Ja Ja Ja Ja Ja Ja
IP_RECVIF Från och med Windows 10 version 1703 Ja Ja Ja Ja Ja
IP_RECVTTL Ja
IP_TOS Ja Ja Ja
IP_TTL Ja Ja Ja Ja Ja Ja
IP_UNBLOCK_SOURCE Ja Ja Ja Ja Ja Ja
IP_UNICAST_IF Ja Ja Ja Ja Ja Ja
IP_WFP_REDIRECT_CONTEXT Ja Ja Ja
IP_WFP_REDIRECT_RECORDS Ja Ja Ja

Alternativ Windows Server 2003 Windows XP
IP_ADD_IFLIST
IP_ADD_MEMBERSHIP Ja Ja
IP_ADD_SOURCE_MEMBERSHIP Ja Ja
IP_BLOCK_SOURCE Ja Ja
IP_DEL_IFLIST
IP_DONTFRAGMENT Ja Ja
IP_DROP_MEMBERSHIP Ja Ja
IP_DROP_SOURCE_MEMBERSHIP Ja Ja
IP_GET_IFLIST
IP_HDRINCL Ja Ja
IP_IFLIST
IP_MULTICAST_IF Ja Ja
IP_MULTICAST_LOOP Ja Ja
IP_MULTICAST_TTL Ja Ja
IP_OPTIONS Ja Ja
IP_ORIGINAL_ARRIVAL_IF
IP_PKTINFO Ja Ja
IP_RECEIVE_BROADCAST Ja Ja
IP_RECVIF
IP_RECVTTL
IP_TOS
IP_TTL Ja Ja
IP_UNBLOCK_SOURCE Ja Ja
IP_UNICAST_IF
IP_WFP_REDIRECT_CONTEXT
IP_WFP_REDIRECT_RECORDS

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_IP nivå definieras i Ws2def.h rubrikfil som automatiskt ingår i Winsock2.h-huvudfilen. Några av alternativen för IPPROTO_IP socket definieras i Ws2ipdef.h huvudfil som automatiskt ingår i Ws2tcpip.h-huvudfil. De återstående IPPROTO_IP socketalternativen definieras i Wsipv6ok.h huvudfil som automatiskt ingår i Winsock2.h- huvudfil. Ws2def.h, Ws2ipdef.hoch Wsipv6ok.h huvudfiler ska aldrig användas direkt.

I Platform SDK som släpptes för Windows Server 2003 och Windows XP definieras IPPROTO_IP-nivån i Winsock2.h- huvudfil. Några av alternativen för IPPROTO_IP socket definieras i Ws2tcpip.h-huvudfilen. De återstående IPPROTO_IP socketalternativen definieras i Wsipv6ok.h huvudfil som automatiskt ingår i Winsock2.h- huvudfil. Wsipv6ok.h-huvudfilen ska aldrig användas direkt.

Krav

Krav Värde
Rubrik
Ws2def.h (inkludera Winsock2.h);
Ws2ipdef.h (inkludera Ws2tcpip.h);
Wsipv6ok.h (inkludera Winsock2.h)