Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In de volgende tabellen worden IPPROTO_IP socketopties beschreven die van toepassing zijn op sockets die zijn gemaakt voor de IPv4-adresfamilie (AF_INET). Zie de referentiepagina's voor de getsockopt - en setsockopt-functie voor meer informatie over het ophalen en instellen van socketopties.
Als u protocollen wilt inventariseren en ondersteunde eigenschappen voor elk geïnstalleerd protocol wilt detecteren, gebruikt u de functie WSAEnumProtocols, WSCEnumProtocols of WSCEnumProtocols32 .
Voor sommige socketopties is meer uitleg vereist dan deze tabellen kunnen overbrengen; dergelijke opties bevatten koppelingen naar extra pagina's.
Options
| Option | Get | Set | Type optval | Description |
|---|---|---|---|---|
| IP_ADD_IFLIST | ja | DWORD (IF_INDEX) | Voegt een interfaceindex toe aan de IFLIST die is gekoppeld aan de optie IP_IFLIST . | |
| IP_ADD_MEMBERSHIP | ja | ip_mreq | Koppel de socket aan de opgegeven multicastgroep op de opgegeven interface. | |
| IP_ADD_SOURCE_MEMBERSHIP | ja | ip_mreq_source | Neem deel aan de opgegeven multicastgroep op de opgegeven interface en accepteer gegevens die afkomstig zijn van het opgegeven bronadres. | |
| IP_BLOCK_SOURCE | ja | ip_mreq_source | Hiermee verwijdert u de opgegeven bron als afzender naar de opgegeven multicastgroep en interface. | |
| IP_DEL_IFLIST | ja | DWORD (IF_INDEX) | Hiermee verwijdert u een interface-index uit de IFLIST die is gekoppeld aan de optie IP_IFLIST . Vermeldingen kunnen alleen door de toepassing worden verwijderd. Houd er dus rekening mee dat vermeldingen verlopen zodra een interface is verwijderd. | |
| IP_DONTFRAGMENT | ja | ja | DWORD (Booleaanse waarde) | Geeft aan dat gegevens niet moeten worden gefragmenteerd, ongeacht de lokale MTU. Alleen geldig voor berichtengeoriënteerde protocollen. Microsoft TCP/IP-providers respecteren deze optie voor UDP en ICMP. |
| IP_DROP_MEMBERSHIP | ja | ip_mreq | Laat de opgegeven multicastgroep uit de opgegeven interface. Serviceproviders moeten deze optie ondersteunen wanneer multicast wordt ondersteund. Ondersteuning wordt aangegeven in de WSAPROTOCOL_INFO structuur die wordt geretourneerd door een functie-aanroep WSAEnumProtocols met het volgende: XPI_SUPPORT_MULTIPOINT=1, XP1_MULTIPOINT_CONTROL_PLANE=0, XP1_MULTIPOINT_DATA_PLANE=0. | |
| IP_DROP_SOURCE_MEMBERSHIP | ja | ip_mreq_source | Vermindert het lidmaatschap van de opgegeven multicastgroep, interface en bronadres. | |
| IP_GET_IFLIST | ja | DWORD[] (IF_INDEX[]) | Hiermee haalt u de huidige IFLIST op die is gekoppeld aan de optie IP_IFLIST . Retourneert een fout als IP_IFLIST niet is ingeschakeld. | |
| IP_HDRINCL | ja | ja | DWORD (Booleaanse waarde) | Als deze waarde is ingesteld op TRUE, geeft u aan dat de toepassing de IP-header levert. Is alleen van toepassing op SOCK_RAW sockets. De TCP/IP-serviceprovider kan het id-veld instellen als de waarde die is opgegeven door de toepassing nul is. De optie IP_HDRINCL wordt alleen toegepast op het SOCK_RAW type protocol. Een TCP/IP-serviceprovider die ondersteuning biedt voor SOCK_RAW moet ook IP_HDRINCL ondersteunen. |
| IP_IFLIST | ja | ja | DWORD (Booleaanse waarde) | Hiermee haalt u de IP_IFLIST status van de socket op of stelt u deze in. Wanneer deze optie is ingesteld op true, is datagram-ontvangst beperkt tot interfaces die zich in de IFLIST bevinden. Datagrammen die op andere interfaces worden ontvangen, worden genegeerd. IFLIST begint leeg. Gebruik IP_ADD_IFLIST en IP_DEL_IFLIST om de IFLIST te bewerken. |
| IP_MTU | ja | DWORD | Haalt de schatting van het systeem op van het pad MTU. De socket moet zijn aangesloten. | |
| IP_MTU_DISCOVER | ja | ja | DWORD (PMTUD_STATE) | Hiermee haalt u de MTU-detectiestatus van het pad voor de socket op of stelt u deze in. De standaardwaarde is IP_PMTUDISC_NOT_SET. Voor stroomsockets voert IP_PMTUDISC_NOT_SET en IP_PMTUDISC_DO pad MTU-detectie uit. IP_PMTUDISC_DONT en IP_PMTUDISC_PROBE schakelt pad MTU-detectie uit. Voor datagramsockets dwingt IP_PMTUDISC_DO alle uitgaande pakketten af dat de DF-bit is ingesteld en een poging om pakketten te verzenden die groter zijn dan het pad MTU, resulteert in een fout. IP_PMTUDISC_DONT dwingt alle uitgaande pakketten om de DF-bit niet in te stellen en pakketten worden gefragmenteerd volgens interface-MTU. IP_PMTUDISC_PROBE dwingt alle uitgaande pakketten om de DF-bit in te stellen en een poging om pakketten te verzenden die groter zijn dan interface-MTU, resulteert in een fout. |
| IP_MULTICAST_IF | ja | ja | DWORD | Hiermee haalt u de uitgaande interface op voor het verzenden van IPv4 multicast-verkeer. Met deze optie wordt de standaardinterface voor het ontvangen van IPv4 multicast-verkeer niet gewijzigd. De invoerwaarde voor het instellen van deze optie is een IPv4-adres van 4 bytes in netwerk bytevolgorde. Deze DWORD-parameter kan ook een interface-index in netwerk bytevolgorde zijn. Elk IP-adres in het blok 0.x.x.x (eerste octet van 0), met uitzondering van IPv4-adres 0.0.0.0 wordt behandeld als een interface-index. Een interface-index is een 24-bits getal en het IPv4-adresblok 0.0.0.0/8 wordt niet gebruikt (dit bereik is gereserveerd). De interface-index kan worden gebruikt om de standaardinterface voor multicast-verkeer voor IPv4 op te geven. Als optval nul is, wordt de standaardinterface voor het ontvangen van multicast opgegeven voor het verzenden van multicast-verkeer. Wanneer u deze optie krijgt, retourneert de optval de huidige standaardinterface-index voor het verzenden van multicast IPv4-verkeer in host bytevolgorde. |
| IP_MULTICAST_LOOP | ja | ja | DWORD (Booleaanse waarde) | Voor een socket die is gekoppeld aan een of meer multicast-groepen, bepaalt deze of deze een kopie ontvangt van uitgaande pakketten die via de geselecteerde multicast-interface naar deze multicast-groepen worden verzonden. Standaard is IP_MULTICAST_LOOP ingeschakeld (waarde 1/TRUE), zodat sockets overeenkomende multicastpakketten ontvangen die door de huidige machine worden verzonden. Als u deze optie uitschakelt (door deze in te stellen op 0/ONWAAR), betekent dit dat deze socket geen multicasts ontvangt die vanaf de lokale computer worden verzonden, zelfs niet als de socket is geopend op de loopback-interface. Dit is niet compatibel met de POSIX-versie van IP_MULTICAST_LOOP: de optie moet worden ingesteld op de ontvangende socket; terwijl de POSIX-optie moet worden ingesteld op de verzendsocket. |
| IP_MULTICAST_TTL | ja | ja | DWORD | Hiermee stelt/haalt u de TTL-waarde op die is gekoppeld aan IP multicast-verkeer op de socket. |
| IP_OPTIONS | ja | ja | char [] | Hiermee geeft u IP-opties worden ingevoegd in uitgaande pakketten. Als u nieuwe opties instelt, worden alle eerder opgegeven opties overschreven. Als u optval instelt op nul, worden alle eerder opgegeven opties verwijderd. IP_OPTIONS ondersteuning is niet vereist; om te controleren of IP_OPTIONS wordt ondersteund, gebruikt u getsockopt om de huidige opties op te halen. Als getsockopt mislukt, wordt IP_OPTIONS niet ondersteund. |
| IP_ORIGINAL_ARRIVAL_IF | ja | ja | DWORD (Booleaanse waarde) | Geeft aan of de functie LPFN_WSARECVMSG (WSARecvMsg) optionele besturingsgegevens moet retourneren die de aankomstinterface bevatten waarin het pakket is ontvangen voor datagram sockets. Met deze optie kan de IPv4-interface waar het pakket is ontvangen, worden geretourneerd in de WSAMSG-structuur . Deze optie is alleen geldig voor datagram en onbewerkte sockets (het sockettype moet SOCK_DGRAM of SOCK_RAW zijn). |
| IP_PKTINFO | ja | ja | DWORD | Geeft aan dat pakketgegevens moeten worden geretourneerd door de functie WSARecvMsg . |
| IP_RECEIVE_BROADCAST | ja | ja | DWORD (Booleaanse waarde) | Hiermee staat u de ontvangst van de uitzending toe of blokkeert u deze. |
| IP_RECVIF | ja | ja | DWORD (Booleaanse waarde) | Geeft aan of de IP-stack de besturingsbuffer moet vullen met details over welke interface een pakket met een datagramsocket heeft ontvangen. Wanneer deze waarde waar is, retourneert de functie LPFN_WSARECVMSG (WSARecvMsg) optionele besturingsgegevens met de interface waar het pakket is ontvangen voor datagram sockets. Met deze optie kan de IPv4-interface waar het pakket is ontvangen, worden geretourneerd in de WSAMSG-structuur . Deze optie is alleen geldig voor datagram en onbewerkte sockets (het sockettype moet SOCK_DGRAM of SOCK_RAW zijn). |
| IP_RECVTOS | ja | ja | DWORD (Booleaanse waarde) | Geeft aan of de IP-stack de besturingsbuffer moet vullen met een bericht met het IPv4-headerveld Type of Service (TOS) op een ontvangen datagram. Wanneer deze waarde waar is, retourneert de functie LPFN_WSARECVMSG (WSARecvMsg) optionele besturingsgegevens met de veldwaarde voor de IPv4-header van het ontvangen datagram. Met deze optie kan het headerveld TOS IPv4 van het ontvangen datagram worden geretourneerd in de WSAMSG-structuur . Het geretourneerde berichttype wordt IP_TOS. Alle DSCP- en ECN-bits van het veld TOS worden geretourneerd. Deze optie is alleen geldig voor datagram sockets (het sockettype moet SOCK_DGRAM). |
| IP_RECVECN | ja | ja | DWORD (Booleaanse waarde) | Geeft aan of de IP-stack de besturingsbuffer moet vullen met een bericht met de ECN-bits van het IPv4-headerveld Type of Service (TOS) op een ontvangen datagram. Als deze waarde waar is, retourneert de functie LPFN_WSARECVMSG (WSARecvMsg) optionele besturingsgegevens met de ECN-bits van de veldwaarde van de TOS IPv4-header van het ontvangen datagram. Met deze optie kunnen de ECN-bits van het veld TOS IPv4-header van het ontvangen datagram worden geretourneerd in de WSAMSG-structuur . Het geretourneerde berichttype wordt IP_ECN. Alle 2 ECN-bits van het veld TOS worden geretourneerd. Deze optie is alleen geldig voor datagram en onbewerkte sockets (het sockettype moet SOCK_DGRAM of SOCK_RAW zijn). De functies WSAGetRecvIPEcn en WSASetRecvIPEcn zijn afgeschaft omdat ze geen ondersteuning bieden voor dubbele stack-sockets. Gebruik deze socketoptie rechtstreeks. Stel op een socket met dubbele stack die niet afhankelijk is van een jokerteken zowel IP_RECVECN (niveau IPPROTO_IP) als IPV6_RECVECN (niveau IPPROTO_IPV6) in. Als de socket is gebonden aan een specifiek IPv6-adres, is alleen IPV6_RECVECN van toepassing. Als de socket is gebonden aan een IPv4-adres dat is toegewezen aan IPv6, is alleen IP_RECVECN van toepassing. |
| IP_RECVTTL | ja | ja | DWORD (Booleaanse waarde) | Geeft aan dat TTL-gegevens (hop) moeten worden geretourneerd in de functie LPFN_WSARECVMSG (WSARecvMsg). Als optval is ingesteld op 1 in de aanroep naar setsockopt, is de optie ingeschakeld. Als deze optie is ingesteld op 0, is de optie uitgeschakeld. Deze optie is alleen geldig voor datagram- en onbewerkte sockets (het sockettype moet SOCK_DGRAM of SOCK_RAW zijn). |
| IP_TOS | ja | ja | DWORD (Booleaanse waarde) | Niet gebruiken. De instellingen voor het type service (TOS) mogen alleen worden ingesteld met behulp van de Quality of Service-API. Zie Differentd Services in de sectie Quality of Service van de Platform SDK voor meer informatie. |
| IP_TTL | ja | ja | DWORD (Booleaanse waarde) | Hiermee wijzigt u de standaardwaarde die is ingesteld door de TCP/IP-serviceprovider in het TTL-veld van de IP-header in uitgaande datagrammen. IP_TTL ondersteuning is niet vereist; om te controleren of IP_TTL wordt ondersteund, gebruikt u getsockopt om de huidige opties op te halen. Als getsockopt mislukt, wordt IP_TTL niet ondersteund. |
| IP_UNBLOCK_SOURCE | ja | ip_mreq_source | Hiermee voegt u de opgegeven bron toe als afzender aan de opgegeven multicast-groep en interface. | |
| IP_UNICAST_IF | ja | ja | DWORD (IF_INDEX) | Hiermee haalt u de uitgaande interface op voor het verzenden van IPv4-verkeer. Met deze optie wordt de standaardinterface voor het ontvangen van IPv4-verkeer niet gewijzigd. Deze optie is belangrijk voor multihomed computers. De invoerwaarde voor het instellen van deze optie is een IPv4-adres van 4 bytes in netwerk bytevolgorde. Deze DWORD-parameter moet een interface-index in netwerk bytevolgorde zijn. Elk IP-adres in het blok 0.x.x.x (eerste octet van 0), met uitzondering van IPv4-adres 0.0.0.0 wordt behandeld als een interface-index. Een interface-index is een 24-bits getal en het IPv4-adresblok 0.0.0.0/8 wordt niet gebruikt (dit bereik is gereserveerd). De interface-index kan worden gebruikt om de standaardinterface voor het verzenden van verkeer voor IPv4 op te geven. De functie GetAdaptersAddresses kan worden gebruikt om de interface-indexinformatie te verkrijgen. Als optval nul is, wordt de standaardinterface voor het verzenden van verkeer ingesteld op niet-opgegeven. Wanneer u deze optie krijgt, retourneert de optval de huidige standaardinterface-index voor het verzenden van IPv4-verkeer in host bytevolgorde. |
| IP_USER_MTU | ja | ja | DWORD | Hiermee haalt u een bovengrens op voor de MTU van de IP-laag (in bytes) voor de opgegeven socket. Als de waarde hoger is dan de schatting van het pad MTU (die u op een verbonden socket kunt ophalen door een query uit te voeren op de IP_MTU socketoptie), heeft de optie geen effect. Als de waarde lager is, worden uitgaande pakketten groter dan dit gefragmenteerd of niet verzonden, afhankelijk van de waarde van IP_DONTFRAGMENT. De standaardwaarde is IP_UNSPECIFIED_USER_MTU (MAXULONG). De functies WSAGetIPUserMtu en WSASetIPUserMtu zijn afgeschaft omdat ze geen ondersteuning bieden voor dual-stack sockets. Gebruik deze socketoptie rechtstreeks. Stel op een dubbele stack-socket die niet-afhankelijk is of is gebonden aan een jokertekens zowel IP_USER_MTU (niveau IPPROTO_IP) als IPV6_USER_MTU (niveau IPPROTO_IPV6) in. Als de socket is gebonden aan een specifiek IPv6-adres, is alleen IPV6_USER_MTU van toepassing. Als de socket is gebonden aan een IPv4-adres dat is toegewezen aan een IPv6-adres, is alleen IP_USER_MTU van toepassing. |
| IP_WFP_REDIRECT_CONTEXT | ja | ja | WSACMSGHDR met controlegegevens | Een aanvullend gegevenstype van een datagramsocket (cmsg_type) om de omleidingscontext aan te geven voor een UDP-socket die wordt gebruikt door een gebruikersmodus Windows WFP-omleidingsservice (Filtering Platform). |
| IP_WFP_REDIRECT_RECORDS | ja | ja | WSACMSGHDR met controlegegevens | Een aanvullend gegevenstype van een datagram socket (cmsg_type) om de omleidingsrecord aan te geven voor een UDP-socket die wordt gebruikt door een gebruikersmodus Windows WFP-omleidingsservice (Filtering Platform). |
Windows ondersteuning voor IP_PROTO opties
| Option | Windows 10 | Windows 8 | Windows Server 2012 | Windows 7 | Windows Server 2008 | Windows Vista |
|---|---|---|---|---|---|---|
| IP_ADD_IFLIST | Vanaf Windows 10 versie 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 | Vanaf Windows 10 versie 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 | Vanaf Windows 10 versie 1803 | |||||
| IP_HDRINCL | ja | ja | ja | ja | ja | ja |
| IP_IFLIST | Vanaf Windows 10 versie 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 | Vanaf Windows 10 versie 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 |
| Option | 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 |
Remarks
In de Microsoft Windows Software Development Kit (SDK) uitgebracht voor Windows Vista en hoger, de organisatie van koptekstbestanden is gewijzigd en het niveau IPPROTO_IP is gedefinieerd in het headerbestand Ws2def.h dat automatisch wordt opgenomen in het Winsock2.h headerbestand. Sommige van de IPPROTO_IP socketopties worden gedefinieerd in het Ws2ipdef.h-headerbestand dat automatisch wordt opgenomen in het headerbestand Ws2tcpip.h . De resterende IPPROTO_IP socketopties worden gedefinieerd in het headerbestand Wsipv6ok.h dat automatisch wordt opgenomen in het headerbestand Winsock2.h . De headerbestanden Ws2def.h, Ws2ipdef.h en Wsipv6ok.h mogen nooit rechtstreeks worden gebruikt.
In de Platform SDK die is uitgebracht voor Windows Server 2003 en Windows XP, wordt het niveau IPPROTO_IP gedefinieerd in het headerbestand Winsock2.h. Sommige van de IPPROTO_IP socketopties worden gedefinieerd in het headerbestand Ws2tcpip.h . De resterende IPPROTO_IP socketopties worden gedefinieerd in het headerbestand Wsipv6ok.h dat automatisch wordt opgenomen in het headerbestand Winsock2.h . Het headerbestand Wsipv6ok.h mag nooit rechtstreeks worden gebruikt.
Requirements
| Requirement | Value |
|---|---|
| Header |
|