C++通过命令行实现dns域名解析

思路

使用 s t d l i b . h stdlib.h stdlib.h下的system 函数。

调用命令行自带函数:nslookup

来查找对应的域名。

代码

#include<cstdio>
#include<string>
#include<iostream>
using namespace std;
void findDNS(string domin_name) {
	domin_name = "nslookup " + domin_name;
	system(domin_name.c_str());
}
int main() {
	system("ipconfig /all");
	printf("请输入你要查找的域名: ");
	string domin_name;
	cin >> domin_name;
	findDNS(domin_name);
}

运行结果如下

C++通过命令行实现dns域名解析_服务器

关于nslookup的使用

可选参数: − q t = t y p e -qt=type qt=type

A 地址记录(直接查询默认类型)

AAAA 地址记录

AFSDB Andrew文件系统数据库服务器记录

ATMA ATM地址记录

CNAME 别名记录

HINFO 硬件配置记录,包括CPU、操作系统信息

ISDN 域名对应的ISDN号码

MB 存放指定邮箱的服务器

MG 邮件组记录

MINFO 邮件组和邮箱的信息记录

MR 改名的邮箱记录

MX 邮件服务器记录

NS 名字服务器记录

PTR 反向记录

RP 负责人记录

RT 路由穿透记录

SRV TCP服务器信息记录

TXT 域名对应的文本信息

X25 域名对应的X.25地址记录


返回的信息说明

服务器:本机DNS服务器信息

非权威应答:Non-authoritative answer,除非实际存储DNS Server中获得域名解析回答的,都称为非权威应答。也就是从缓存中获取域名解析结果。

address:目标域名对应物理IP可有多个

aliase:目标域名


C++通过命令行实现dns域名解析_开发语言_02