IPPROTO_IPV6 opções de soquete
As tabelas a seguir descrevem IPPROTO_IPV6 opções de soquete que se aplicam a soquetes criados para a família de endereços IPv6 (AF_INET6). Consulte as páginas de referência getsockopt e função setsockopt para obter mais informações sobre como obter e definir opções de soquete.
Para enumerar protocolos e descobrir propriedades suportadas para cada protocolo instalado, use o WSAEnumProtocols, WSCEnumProtocolsou WSCEnumProtocols32 função.
Algumas opções de soquete exigem mais explicações do que essas tabelas podem transmitir; Essas opções contêm links para informações adicionais.
Opções
Opção | Obter | conjunto | Tipo de optval | Descrição |
---|---|---|---|---|
IP_ORIGINAL_ARRIVAL_IF | Sim | Sim | DWORD (booleano) | Indica se a funçãoLPFN_WSARECVMSG (WSARecvMsg) deve retornar dados de controle opcionais contendo a interface de chegada original onde o pacote foi recebido para soquetes de datagrama. Essa opção é usada com tecnologias de transição IPv6 (túneis 6to4, ISATAP e Teredo, por exemplo) que fornecem atribuição de endereço e tunelamento automático de host para host para tráfego IPv6 unicast quando os hosts IPv6 precisam atravessar redes IP4 para alcançar outras redes IPv6. Os pacotes IPv6 são enviados encapsulados como pacotes IPv4. Essa opção permite que a interface IPv4 original onde o pacote foi recebido seja retornada na estruturaWSAMSG. |
IPV6_ADD_IFLIST | Sim | DWORD (IF_INDEX) | Adiciona um índice de interface à IFLIST associada à opção IP_IFLIST. | |
IPV6_ADD_MEMBERSHIP | Sim | ipv6_mreq | Junte o soquete ao grupo de multicast fornecido na interface especificada. Esta opção só é válida em datagramas e soquetes brutos (o tipo de soquete deve ser SOCK_DGRAM ou SOCK_RAW). | |
IPV6_DEL_IFLIST | Sim | DWORD (IF_INDEX) | Remove um índice de interface da IFLIST associado à opção IP_IFLIST. As entradas podem ser removidas apenas pelo aplicativo, portanto, esteja ciente de que as entradas podem ficar obsoletas quando uma interface for removida. | |
IPV6_DROP_MEMBERSHIP | Sim | ipv6_mreq | Deixe o grupo de multicast fornecido da interface fornecida. Esta opção só é válida em datagramas e soquetes brutos (o tipo de soquete deve ser SOCK_DGRAM ou SOCK_RAW). | |
IPV6_GET_IFLIST | Sim | DWORD[] (IF_INDEX[]) | Obtém a IFLIST atual associada à opção IP_IFLIST. Retorna erro se IP_IFLIST não estiver habilitado. | |
IPV6_HDRINCL | Sim | Sim | DWORD (booleano) | Indica que o aplicativo fornece o cabeçalho IPv6 em todos os dados de saída. Se o parâmetro optval estiver definido como 1 na chamada para setsockopt, a opção será ativada. Se optval estiver definido como 0, a opção será desativada. O valor padrão está desabilitado. Esta opção só é válida para datagrama e soquetes brutos (o tipo de soquete deve ser SOCK_DGRAM ou SOCK_RAW). Um provedor de serviços TCP/IP que suporte SOCK_RAW também deve oferecer suporte a IPV6_HDRINCL. |
IPV6_HOPLIMIT | Sim | Sim | DWORD (booleano) | Indica que as informações de salto (TTL) devem ser retornadas na funçãoLPFN_WSARECVMSG (WSARecvMsg). Se optval estiver definido como 1 na chamada para setsockopt, a opção estará ativada. Se definido como 0, a opção está desativada. Esta opção só é válida para datagrama e soquetes brutos (o tipo de soquete deve ser SOCK_DGRAM ou SOCK_RAW). |
IPV6_IFLIST | Sim | Sim | DWORD (booleano) | Obtém ou define o estado IP_IFLIST do soquete. Quando essa opção é definida como true, a receção do Datagram é restrita às interfaces que estão na IFLIST. Os datagramas recebidos em quaisquer outras interfaces são ignorados. IFLIST começa vazio. Use IP_ADD_IFLIST e IP_DEL_IFLIST para editar a IFLIST. |
IPV6_JOIN_GROUP | Sim | ipv6_mreq | O mesmo que IPV6_ADD_MEMBERSHIP | |
IPV6_LEAVE_GROUP | Sim | ipv6_mreq | O mesmo que IPV6_DROP_MEMBERSHIP | |
IPV6_MTU | Sim | DWORD | Obtém a estimativa do sistema do caminho MTU. O soquete deve estar conectado. | |
IPV6_MTU_DISCOVER | Sim | Sim | DWORD (PMTUD_STATE) | Obtém ou define o estado de descoberta de MTU do caminho para o soquete. O valor padrão é IP_PMTUDISC_NOT_SET. Para soquetes de fluxo, IP_PMTUDISC_NOT_SET e IP_PMTUDISC_DO executarão a descoberta de MTU de caminho. IP_PMTUDISC_DONT e IP_PMTUDISC_PROBE desativarão a descoberta de MTU do caminho. Para soquetes de datagrama, se definido como IP_PMTUDISC_DO , as tentativas de enviar pacotes maiores que a MTU de caminho resultarão em um erro. Se definido como IP_PMTUDISC_DONT, os pacotes serão fragmentados de acordo com a MTU da interface. Se definido como IP_PMTUDISC_PROBE, as tentativas de enviar pacotes maiores que a MTU da interface resultarão em um erro. |
IPV6_MULTICAST_HOPS | Sim | Sim | DWORD | Obtém ou define o valor TTL associado ao tráfego de multicast IPv6 no soquete. É ilegal definir o TTL para um valor superior a 255. Esta opção só é válida para datagrama e soquetes brutos (o tipo de soquete deve ser SOCK_DGRAM ou SOCK_RAW). |
IPV6_MULTICAST_IF | Sim | Sim | DWORD | Obtém ou define a interface de saída para enviar tráfego de multicast IPv6. Esta opção não altera a interface padrão para receber tráfego de multicast IPv6. Esta opção é importante para computadores multihomed. O valor de entrada para definir essa opção é um índice de interface de 4 bytes da interface de saída desejada na ordem de bytes do host. O função GetAdaptersAddresses pode ser usado para obter as informações do índice da interface. Se optval estiver definido como NULL on call para setsockopt, a interface IPv6 padrão será usada. Se optval for zero, a interface padrão para receber multicast será especificada para o envio de tráfego de multicast. Ao obter essa opção, o optval retorna o índice de interface padrão atual para enviar tráfego IPv6 multicast na ordem de bytes do host. |
IPV6_MULTICAST_LOOP | Sim | Sim | DWORD (booleano) | Indica que os dados de multicast enviados no soquete serão ecoados para o buffer de recebimento de soquetes se ele também estiver associado no grupo de multicast de destino. Se optval estiver definido como 1 na chamada para setsockopt, a opção estará ativada. Se definido como 0, a opção está desativada. Esta opção só é válida para datagrama e soquetes brutos (o tipo de soquete deve ser SOCK_DGRAM ou SOCK_RAW). |
IPV6_PKTINFO | Sim | Sim | DWORD (booleano) | Indica que as informações do pacote devem ser retornadas pela funçãoLPFN_WSARECVMSG (WSARecvMsg). |
IPV6_PROTECTION_LEVEL | Sim | Sim | INT | Permite a restrição de um soquete a um escopo especificado, como endereços com o mesmo link local ou prefixo local do site. Fornece vários níveis de restrição e configurações padrão. Consulte IPV6_PROTECTION_LEVEL para obter mais informações. |
IPV6_RECVIF | Sim | Sim | DWORD (booleano) | Indica se a pilha IP deve preencher o buffer de controle com detalhes sobre qual interface recebeu um pacote com um soquete de datagrama. Quando esse valor for true, a funçãoLPFN_WSARECVMSG (WSARecvMsg) retornará dados de controle opcionais contendo a interface onde o pacote foi recebido para soquetes de datagrama. Essa opção permite que a interface IPv6 onde o pacote foi recebido seja retornada na estruturaWSAMSG. Esta opção só é válida para datagrama e soquetes brutos (o tipo de soquete deve ser SOCK_DGRAM ou SOCK_RAW). |
IPV6_RECVTCLASS | Sim | Sim | DWORD (booleano) | Indica se a pilha de IP deve preencher o buffer de controle com uma mensagem contendo o campo de cabeçalho IPv6 da Classe de Tráfego em um datagrama recebido. Quando esse valor for true, a funçãoLPFN_WSARECVMSG (WSARecvMsg) retornará dados de controle opcionais contendo o valor do campo de cabeçalho IPv6 da classe de tráfego do datagrama recebido. Essa opção permite que o campo de cabeçalho IPv6 da Classe de Tráfego do datagrama recebido seja retornado na estruturaWSAMSG. O tipo de mensagem retornada será IPV6_TCLASS. Todos os bits DSCP e ECN do campo Classe de Tráfego serão retornados. Esta opção só é válida em soquetes de datagrama (o tipo de soquete deve ser SOCK_DGRAM). |
IPV6_RECVECN | Sim | Sim | DWORD (booleano) | Indica se a pilha IP deve preencher o buffer de controle com uma mensagem contendo os bits ECN do campo de cabeçalho IPv6 da classe de tráfego em um datagrama recebido. Quando esse valor for true, a funçãoLPFN_WSARECVMSG (WSARecvMsg) retornará dados de controle opcionais contendo os bits ECN do valor do campo de cabeçalho IPv6 da classe de tráfego do datagrama recebido. Esta opção permite que os bits ECN do campo de cabeçalho IPv6 da Classe de Tráfego do datagrama recebido sejam retornados na estruturaWSAMSG. O tipo de mensagem retornada será IPV6_ECN. Todos os 2 bits ECN do campo Classe de Tráfego serão retornados. Esta opção só é válida em datagramas e soquetes brutos (o tipo de soquete deve ser SOCK_DGRAM ou SOCK_RAW). Para segurança de tipo, você deve usar o WSAGetRecvIPEcn e WSASetRecvIPEcn funções em vez de usar a opção de soquete diretamente. |
IPV6_UNICAST_HOPS | Sim | Sim | DWORD | Obtém ou define o valor TTL atual associado ao soquete IPv6 para tráfego unicast. É ilegal definir o TTL para um valor superior a 255. |
IPV6_UNICAST_IF | Sim | Sim | DWORD (IF_INDEX) | Obtém ou define a interface de saída para enviar tráfego IPv6. Esta opção não altera a interface padrão para receber tráfego IPv6. Esta opção é importante para computadores multihomed. O valor de entrada para definir essa opção é um índice de interface de 4 bytes da interface de saída desejada na ordem de bytes do host. O função GetAdaptersAddresses pode ser usado para obter as informações do índice da interface. Se optval for zero, a interface padrão para enviar tráfego IPv6 será definida como não especificada. Ao obter essa opção, o optval retorna o índice de interface padrão atual para enviar tráfego IPv6 na ordem de bytes do host. |
IPV6_USER_MTU | Sim | Sim | DWORD | Obtém ou define um limite superior na MTU da camada IP (em bytes) para o soquete determinado. Se o valor for maior do que a estimativa do sistema do caminho MTU (que você pode recuperar em um soquete conectado consultando a opção de soquete IPV6_MTU), a opção não terá efeito. Se o valor for menor, os pacotes de saída maiores do que isso serão fragmentados ou não serão enviados, dependendo do valor de IPV6_DONTFRAG. O valor padrão é IP_UNSPECIFIED_USER_MTU (MAXULONG). Para segurança de tipo, você deve usar o WSAGetIPUserMtu e WSASetIPUserMtu funções em vez de usar a opção de soquete diretamente. |
IPV6_V6ONLY | Sim | Sim | DWORD (booleano) | Indica se um soquete criado para a família de endereços AF_INET6 está restrito apenas a comunicações IPv6. Os soquetes criados para a família de endereços AF_INET6 podem ser usados para comunicações IPv6 e IPv4. Alguns aplicativos podem querer restringir o uso de um soquete criado para a família de endereços AF_INET6 apenas para comunicações IPv6. Quando esse valor é diferente de zero (o padrão no Windows), um soquete criado para a família de endereços AF_INET6 pode ser usado apenas para enviar e receber pacotes IPv6. Quando esse valor é zero, um soquete criado para a família de endereços AF_INET6 pode ser usado para enviar e receber pacotes de e para um endereço IPv6 ou um endereço IPv4. Observe que a capacidade de interagir com um endereço IPv4 requer o uso de endereços mapeados IPv4. Esta opção de soquete é suportada no Windows Vista ou posterior. |
Suporte do Windows para opções de soquete IPPROTO_IPV6
Opção | Janelas 8 | Windows Server 2012 | Janelas 7 | Windows Server 2008 | Windows Vista |
---|---|---|---|---|---|
IP_ORIGINAL_ARRIVAL_IF | Sim | Sim | Sim | ||
IPV6_ADD_IFLIST | A partir do Windows 10, versão 1803 | ||||
IPV6_ADD_MEMBERSHIP | Sim | Sim | Sim | Sim | Sim |
IPV6_DEL_IFLIST | A partir do Windows 10, versão 1803 | ||||
IPV6_DROP_MEMBERSHIP | Sim | Sim | Sim | Sim | Sim |
IPV6_GET_IFLIST | A partir do Windows 10, versão 1803 | ||||
IPV6_HDRINCL | Sim | Sim | Sim | Sim | Sim |
IPV6_HOPLIMIT | Sim | Sim | Sim | Sim | Sim |
IPV6_IFLIST | A partir do Windows 10, versão 1803 | ||||
IPV6_JOIN_GROUP | Sim | Sim | Sim | Sim | Sim |
IPV6_LEAVE_GROUP | Sim | Sim | Sim | Sim | Sim |
IPV6_MULTICAST_HOPS | Sim | Sim | Sim | Sim | Sim |
IPV6_MULTICAST_IF | Sim | Sim | Sim | Sim | Sim |
IPV6_MULTICAST_LOOP | Sim | Sim | Sim | Sim | Sim |
IPV6_PKTINFO | Sim | Sim | Sim | Sim | Sim |
IPV6_PROTECTION_LEVEL | Sim | Sim | Sim | Sim | Sim |
IPV6_RECVIF | Sim | Sim | Sim | Sim | Sim |
IPV6_UNICAST_HOPS | Sim | Sim | Sim | Sim | Sim |
IPV6_UNICAST_IF | Sim | Sim | Sim | Sim | Sim |
IPV6_V6ONLY | Sim | Sim | Sim | Sim | Sim |
Opção | Windows Server 2003 | Janelas XP |
---|---|---|
IP_ORIGINAL_ARRIVAL_IF | ||
IPV6_ADD_IFLIST | ||
IPV6_ADD_MEMBERSHIP | Sim | Sim |
IPV6_DEL_IFLIST | ||
IPV6_DROP_MEMBERSHIP | Sim | Sim |
IPV6_GET_IFLIST | ||
IPV6_HDRINCL sim | Sim | |
IPV6_HOPLIMIT sim | Sim | |
IPV6_IFLIST | ||
IPV6_JOIN_GROUP | Sim | Sim |
IPV6_LEAVE_GROUP | Sim | Sim |
IPV6_MULTICAST_HOPS | Sim | Sim |
IPV6_MULTICAST_IF | Sim | Sim |
IPV6_MULTICAST_LOOP | Sim | Sim |
IPV6_PKTINFO | Sim | Sim |
IPV6_PROTECTION_LEVEL | Sim | Sim |
IPV6_RECVIF | ||
IPV6_UNICAST_HOPS | Sim | Sim |
IPV6_UNICAST_IF | ||
IPV6_V6ONLY |
Comentários
No Microsoft Windows Software Development Kit (SDK) lançado para Windows Vista e posterior, a organização dos arquivos de cabeçalho foi alterada e IPPROTO_IPV6 nível é definido no arquivo de cabeçalho Ws2def.h que é incluído automaticamente no arquivo de cabeçalho Winsock2.h. As opções de soquete IPPROTO_IPV6 são definidas no arquivo de cabeçalho Ws2ipdef.h que é incluído automaticamente no arquivo de cabeçalho Ws2tcpip.h. O Ws2def.h e Ws2ipdef.h arquivos de cabeçalho nunca devem ser usados diretamente.
A opção de soquete IP_ORIGINAL_ARRIVAL_IF é suportada no Windows Server 2008 R2, bem como no Windows 7.
Requerimentos
Exigência | Valor |
---|---|
Cabeçalho |
|