刷新一组域名在DNS服务器上的域名缓存,用C++如何实现?

小丑要睡了 2014-06-09 12:36:56
对网络这块不懂,不知道表述上是否有误,具体要做的如下:

做一个小工具,定时刷新DNS的域名缓存。
就是我有一组域名,然后定时向一组DNS服务器发送解析请求什么的(是不是这样不太懂,就是类似打开网站向DNS发请求),以此来刷新DNS的域名缓存列表(主机缓存列表?)。
成功访问了域名之后,DNS就会把这个域名记录到缓存中,这样,下次别人通过这个DNS访问这个域名时,DNS服务器就能快速响应,打开网站,同时也尽可能避免了网站打不开的情况。

这种想法合理吗?

感觉上,主要解决的问题应该是这几个:
1、如何扫描网络上可用的DNS服务器。
2、如何向DNS服务器发送域名解析请求,并获取结果,最终能使该DNS服务器缓存下这个域名。
3、如何提高效率及成功率。

最后,要做这样一个工具,得要了解那方面的知识?
(如有不清楚,请留言)
...全文
268 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
小丑要睡了 2014-06-11
  • 打赏
  • 举报
回复
顶一下。
小丑要睡了 2014-06-10
  • 打赏
  • 举报
回复
没人,自顶。
不要做咸鱼 2014-06-10
  • 打赏
  • 举报
回复
引用 6 楼 xchysl 的回复:
[quote=引用 5 楼 sd530842780 的回复:] 你是想实现gethostbyname么?有源码吧,按照你的意思gethostbyname就可以定时实现dns服务器的域名刷新问题啊
可能gethostbyaddr更有用一些。 你知道域名解析请求是怎么发的吗,也是发个UDP包? 本机写个程序连DNS和连服务器应该一样的吧,没写过网络有关的代码,不太清楚。 是不是就是用Socket发个UDP连接服务器的请求包,这个包是域名解析请求包,只要弄清楚包的格式就行了,这样一个思路?[/quote] 嗯,就是构造UDP包头,DNS协议有DNS_HEADER结构体,构造好发送过去然后接收解析就行了,我以前的项目中用到过。
不要做咸鱼 2014-06-10
  • 打赏
  • 举报
回复
嗯,就是构造UDP包头,DNS协议有DNS_HEADER结构体,构造好发送过去然后接收解析就行了,我以前的项目中用到过。
小丑要睡了 2014-06-10
  • 打赏
  • 举报
回复
引用 5 楼 sd530842780 的回复:
你是想实现gethostbyname么?有源码吧,按照你的意思gethostbyname就可以定时实现dns服务器的域名刷新问题啊
可能gethostbyaddr更有用一些。 你知道域名解析请求是怎么发的吗,也是发个UDP包? 本机写个程序连DNS和连服务器应该一样的吧,没写过网络有关的代码,不太清楚。 是不是就是用Socket发个UDP连接服务器的请求包,这个包是域名解析请求包,只要弄清楚包的格式就行了,这样一个思路?
不要做咸鱼 2014-06-10
  • 打赏
  • 举报
回复
你是想实现gethostbyname么?有源码吧,按照你的意思gethostbyname就可以定时实现dns服务器的域名刷新问题啊
小丑要睡了 2014-06-09
  • 打赏
  • 举报
回复
引用 2 楼 u010800064 的回复:
最基本,要了解 域名解析服务的工作原理。才能进行下面的工作
我想的,应该就是本地DNS服务器的缓存刷新问题,也就是本地连接设置的那个DNS服务器,后面的细节感觉上没有再了解的必要。 现在是要怎么模拟用户打开网站,发解析请求。 就是我自己组解析请求包,发向指定的DNS服务器,这个包要怎么组怎么发的问题?
gogiqp_jyh 2014-06-09
  • 打赏
  • 举报
回复
最基本,要了解 域名解析服务的工作原理。才能进行下面的工作
小丑要睡了 2014-06-09
  • 打赏
  • 举报
回复
自顶。

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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