dns解析c语言
发布时间: 2024-03-27 16:25:53
① 怎么用c或者c++代码获取默认DNS服务器的ip
这里的代码可以打印出电脑默认的DNS服务器
#pragmawarning(disable:4996)
#include<stdio.h>
#include<WinSock2.h>
#include<iphlpapi.h>
#pragmacomment(lib,"IPHLPAPI.lib")
#pragmacomment(lib,"ws2_32.lib")
intmain()//获取本地主机名、域名和DNS服务器信息
{
//声明变量
FIXED_INFO*FixedInfo;//定义保存本地计算机网络参数信息的结构体指针
ULONGulOutBufLen;//保存获取到的本地计算机网络参数信息结构体链表的长度
DWORDdwRetVal;//调用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 ",dwRetVal);
}
else
{
printf(" DNS服务器列表: ");
printf("%s ",FixedInfo->DnsServerList.IpAddress.String);
pIPAddr=FixedInfo->DnsServerList.Next;
while(pIPAddr)
{
printf(" %s ",pIPAddr->IpAddress.String);
pIPAddr=pIPAddr->Next;
}
}
printf("按下回车键结束 ");
getchar();
return0;
}
② 写一个C语言程序: 能修改linux 主机的IP、DHCP、DNS 等设置
可以调用system()函数。把linux系统命令拼成字符串,然后调用system去执行这个字符串就可以了。修改系统配置,需要root身份。
1、system函数:
原型:int
system(const
char
*
command);
功能:执行
dos(windows系统)
或
shell(Linux/Unix系统)
命令,参数字符串command为命令名;
说明:在windows系统中,system函数直接在控制台调用一个command命令。在Linux/Unix系统中,system函数会调用fork函数产生子进程,由子进程来执行command命令,命令执行完后随即返回原调用的进程;
头文件:stdlib.h;
返回值:命令执行成功返回0,执行失败返回-1。
2、例程:
#include<stdio.h>
#include<stdlib.h>
int main(){
system("del C:\\123.txt");//在控制台中,执行命令del C:\\123.txt,删除C盘目录下的123.txt文件
return 0;
}
热点内容