关于DNS协议的解析问题,有了解的希望不吝赐教

whiteclouds 2005-05-31 10:30:29
项目需要在不支持gethostbyname()函数的系统中实现根据域名取得ip地址的功能,我按照dns协议向dns服务器发出查询www.china.com的ip的报文:a5 ce 01 00 00 01 00 00 00 00 00 00 03 77 77 77 05 63 68 69 6e 61 03 63 6f 6d 00 00 01 00 01,服务器返回的报文如下:a5 ce 81 80 00 01 00 11 00 02 00 02 03 77 77 77 05 63 68 69 6e 61 03 63 6f 6d 00 00 01 00 01 c0 0c 00 05 00 01 00 00 17 30 00 0a 07 63 68 63 61 63 68 65 c0 10 c0 2b 00 01 00 01 00 00 00 d1 00 04 3d 97 f3 cf c0 2b 00 01 00 01 00 00 00 d1 00 04 3d 97 f3 d0 c0 2b 00 01 00 01 00 00 00 d1 00 04 3d 97 f3 da c0 2b 00 01 00 01 00 00 00 d1 00 04 3d 97 f3 df c0 2b 00 01 00 01 00 00 00 d1 00 04 3d 97 f3 f5 c0 2b 00 01 00 01 00 00 00 d1 00 04 3d 97 f3 f6 c0 2b 00 01 00 01 00 00 00 d1 00 04 3d 97 f3 f7 c0 2b 00 01 00 01 00 00 00 d1 00 04 3d 97 f3 f8 c0 2b 00 01 00 01 00 00 00 d1 00 04 3d 97 f3 0c c0 2b 00 01 00 01 00 00 00 d1 00 04 3d 97 f3 0d c0 2b 00 01 00 01 00 00 00 d1 00 04 3d 97 f3 0e c0 2b 00 01 00 01 00 00 00 d1 00 04 3d 97 f3 07 c0 2b 00 01 00 01 00 00 00 d1 00 04 3d 97 f3 c5 c0 2b 00 01 00 01 00 00 00 d1 00 04 3d 97 f3 e2 c0 2b 00 01 00 01 00 00 00 d1 00 04 3d 97 f3 fa c0 2b 00 01 00 01 00 00 00 d1 00 04 3d 97 f3 fc c0 10 00 02 00 01 00 00 0a b4 00 06 03 6e 73 31 c0 10 c0 10 00 02 00 01 00 00 0a b4 00 06 03 6e 73 32 c0 10 c1 41 00 01 00 01 00 02 97 9a 00 04 3d 97 f3 88 c1 53 00 01 00 01 00 02 97 9a 00 04 ca 54 01 65
可我根据协议分析不清内容。请问,我应该如何分析报文,取出ip地址?谢谢!
...全文
160 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
springstart 2005-08-24
  • 打赏
  • 举报
回复
推荐你看一下《TCP/IP详解卷1》
whiteclouds 2005-06-22
  • 打赏
  • 举报
回复
有人懂吗?帮帮忙啊!
whiteclouds 2005-06-09
  • 打赏
  • 举报
回复
欢迎大家畅所欲言。
whiteclouds 2005-06-07
  • 打赏
  • 举报
回复
DDNS解析是什么?
whiteclouds 2005-06-06
  • 打赏
  • 举报
回复
具体地说,我是在嵌入式系统中作项目,这个系统没有人工干预,当然没有输入ping命令的可能,而且它的API函数中没有gethostbyname,所以我只能自己模拟ping命令的过程,至于为啥要取对方ip,因为固定ip费用太高,客户希望使用动态ip。
我对照dns协议看了服务器返回的数据,开始还明白,到资源数据部分就看不明白了,不知应该根据什么标志来确定报文中对方ip所在地址。所以请教大家。
我查询www.china.com只是测试,项目不是要和china.com作连接。
abldyjh2003 2005-06-06
  • 打赏
  • 举报
回复
你可以做DDNS 解析。
石戬 2005-06-05
  • 打赏
  • 举报
回复
许多大型网站使用服务器群集架构,每次访问的IP可能略有不同。
DomainName换IP的socket函数好象有吧。
oyljerry 2005-06-01
  • 打赏
  • 举报
回复
参考DNS的RFC等文档,应该有数据文件的格式等
最好还是通过一些别的简单的方法来获得 如ping等
rebell 2005-06-01
  • 打赏
  • 举报
回复
真不明白你为什么要通过自己向dns发送解析请求,获得ip呢?
既然有域名要访问对方直接用域名好了,何必还要转换为ip。
得到ip的方法也很多,实在不行来个ping www.163.com > 1.txt 自己取ip绕下。
如果如果确实需要通过自己解析,自己看看udp协议,因为dns用的是udp的,你看了dns的协议了该知道从第几个字段是回复的ip的。
popdog 2005-06-01
  • 打赏
  • 举报
回复
不了解,学习.
whiteclouds 2005-05-31
  • 打赏
  • 举报
回复
up

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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