怎么用c或者c++代码获取默认DNS服务器的ip

 我来答
天王荡
2016-07-31 · TA获得超过276个赞
知道小有建树答主
回答量:327
采纳率:0%
帮助的人:166万
展开全部

这里的代码可以打印出电脑默认的DNS服务器

参考资料:http://blog.csdn.net/shimazhuge/article/details/8949508

#pragma warning(disable:4996)
#include <stdio.h>  
#include <WinSock2.h>  
#include <iphlpapi.h>  

#pragma comment(lib, "IPHLPAPI.lib")  
#pragma comment(lib, "ws2_32.lib")  
int main() // 获取本地主机名、域名和DNS服务器信息  
{
// 声明变量  
FIXED_INFO * FixedInfo;     // 定义保存本地计算机网络参数信息的结构体指针  
ULONG    ulOutBufLen;       // 保存获取到的本地计算机网络参数信息结构体链表的长度  
DWORD    dwRetVal;          // 调用GetNetworkParams()函数的返回值  
IP_ADDR_STRING * pIPAddr;   // 保存所有DNS服务器的IP地址列表  

FixedInfo = (FIXED_INFO *)GlobalAlloc(GPTR, sizeof(FIXED_INFO));   // 为FixedInfo结构体分配内存空间  
ulOutBufLen = sizeof(FIXED_INFO);         // 初始化ulOutBufLen变量值  

  // 第1次调用GetNetworkParams()函数,获取返回结果的大小到ulOutBufLen中  
if (ERROR_BUFFER_OVERFLOW == GetNetworkParams(FixedInfo, &ulOutBufLen))
{
GlobalFree(FixedInfo);
FixedInfo = (FIXED_INFO *)GlobalAlloc(GPTR, ulOutBufLen);
}

// 第2次调用GetNetworkParams()函数,以前面获取的ulOutBufLen作为参数,  
if (dwRetVal = GetNetworkParams(FixedInfo, &ulOutBufLen) != ERROR_SUCCESS)
{
printf("调用GetNetworkParams()函数失败。返回值: %08x\n", dwRetVal);
}
else
{
printf("\nDNS服务器列表:\n");
printf("%s\n", FixedInfo->DnsServerList.IpAddress.String);

pIPAddr = FixedInfo->DnsServerList.Next;
while (pIPAddr)
{
printf("\t%s\n", pIPAddr->IpAddress.String);
pIPAddr = pIPAddr->Next;
}
}
printf("按下回车键结束\n");
getchar();
return 0;
}
Storm代理
2023-07-25 广告
StormProxies是一家提供动态代理服务器服务的企业,旨在帮助用户更好地管理网络访问和安全。以下是一些关于StormProxies的IP动态代理服务的特点:1. 高匿名性:StormProxies的动态代理服务器具有高匿名性,可以有效... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式