1,317
社区成员
发帖
与我相关
我的任务
分享
#include <Winsock2.h>
#include <stdio.h>
#pragma comment(lib,"ws2_32.lib")
//---------------------------------------------------------------------------
bool __stdcall LocalExistIPv6(void)
{
bool Result = false;
WSADATA WSAData;
if (WSAStartup(MAKEWORD(2,2), &WSAData) == S_OK)
{
int iProtocol = IPPROTO_TCP;
WSAPROTOCOL_INFO * lpProtocolBuf = NULL;
DWord dwBufLen = 0;
if (WSAEnumProtocols(&iProtocol, lpProtocolBuf, &dwBufLen) == SOCKET_ERROR)
if (WSAGetLastError() == WSAENOBUFS)
{
lpProtocolBuf = (WSAPROTOCOL_INFO *)malloc(dwBufLen);
int nRet = WSAEnumProtocols(&iProtocol, lpProtocolBuf, &dwBufLen);
if (nRet != SOCKET_ERROR)
for (int i = 0; i < nRet; i++)
if (lpProtocolBuf[i].iAddressFamily == AF_INET6) // AF_INET6 IPv6 协议
{
Result = true;
break;
}
free(lpProtocolBuf);
}
WSACleanup();
}
return Result;
}
//---------------------------------------------------------------------------