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 | Få | 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 |
|