如何判断已经安装了 IPv6 协议?

sczyq 2009-05-14 04:57:24
如题!要求在程序内判断
...全文
464 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluecent 2009-05-26
  • 打赏
  • 举报
回复
学习
yangangs 2009-05-26
  • 打赏
  • 举报
回复
keyi的方法很有特点
fairchild811 2009-05-25
  • 打赏
  • 举报
回复
getaddinfo
sczyq 2009-05-25
  • 打赏
  • 举报
回复
根据 VC 程序。

#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;
}
//---------------------------------------------------------------------------
肆水東澤 2009-05-15
  • 打赏
  • 举报
回复
学习了
柯本 2009-05-14
  • 打赏
  • 举报
回复
还可以用注册表:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TRegistry *regkey= new TRegistry();
regkey->RootKey=HKEY_LOCAL_MACHINE ;
if (regkey->OpenKey("SOFTWARE\\Microsoft\\Router\\CurrentVersion\\RouterManagers\\Ipv6",false))
ShowMessage("IPv6 Installed!");
else
ShowMessage("IPv6 Not Installed!");

}
///在win7及winxp中测试通过。
柯本 2009-05-14
  • 打赏
  • 举报
回复
给一个另类的方法:
WinExec("cmd /c ipconfig.exe > e:\\temp\\1.txt",SW_HIDE);
然后在1.txt中判是否有"IPv6"字串,如果有,则表明安装了
ccrun.com 2009-05-14
  • 打赏
  • 举报
回复
1楼方法应该可行。关于getaddrinfo的详细的描述,可参考这里:
http://dev.csdn.net/article/53/53741.shtm
hemiya 2009-05-14
  • 打赏
  • 举报
回复
不知道.留记号.
jame2001 2009-05-14
  • 打赏
  • 举报
回复
getaddrinfo() 傳入 IPV6 位址, 判斷回傳值.

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧