上一节已经讲了如何构造dns请求包的情况,这一节接着上一节的情况,谈谈dns查询报文中的问题部分。问题部分中每个问题的格式如下:

  

  

  查询名是要查找的名字,它是一个或者多个标识符的序列。每个标识符以首字母字节的计数值来说明随后标识符的字节长度,每个查询名以最后字节为0结束,长度为0的标识符是根标识符。具体情况我们抓个包看看:

  

  我们看到请求的名字是www.baidu.com发出的包的内容是下面的红线标识的部分,要查找的名字被转变成了3www5baidu3com这种的格式,所以我们在构造dns查询请求包的时候,需要把查询的名字格式改改:

  var (

    buffer   bytes.Buffer

      segments []string = strings.Split(domain, ".")

    )

   for _, seg := range segments {

       binary.Write(&buffer, binary.BigEndian, byte(len(seg)))

    binary.Write(&buffer, binary.BigEndian, []byte(seg))

  }

   binary.Write(&buffer, binary.BigEndian, byte(0x00))

   return buffer.Bytes()

  完整的代码请移步上一节。查询报文中的问题部分就简单介绍到这里。

最新文章

  1. 意法STM32F1系列MCU单片机解密芯片破解复制
  2. J2EE与JavaWeb的区别
  3. jQuery设置disabled属性
  4. fis自动化部署
  5. atom 震动特效
  6. 我的第一个python爬虫程序
  7. android让你的TabHost滑动起来
  8. 【斜率DP】bzoj1597: [Usaco2008 Mar]土地购买
  9. 【转】Effective-Objective-C-读书笔记-Item-4-如何正确定义常量 -- 不错
  10. hql查询技巧
  11. 在 Azure 网站上使用 Memcached 改进 WordPress
  12. hdu 1542 Atlantis 段树区,并寻求,,,尼玛真坑人数据,不要打开一小阵!
  13. 【锋利的Jquery】读书笔记四
  14. hibernate5使用注解遇到的问题
  15. phpstorm 2017.2激活
  16. Sql Server中的nvarchar(n)和varchar(n)
  17. 【算法】【python实现】二叉搜索树插入、删除、查找
  18. Fiddler使用教程(转)
  19. AVPass技术分析:银行劫持类病毒鼻祖BankBot再度来袭,如何绕过谷歌play的杀毒引擎?
  20. CSS3笔记1

热门文章

  1. Python虚拟机类机制之instance对象(六)
  2. easyui tree datagrid动态添加表头和表格数据,动态弹出框,修改和删除按钮
  3. [转]using components in Cakephp 2+ Shell
  4. Group Policy Object Editor
  5. OpenStack之Glance源码简析
  6. 【Median of Two Sorted Arrays】cpp
  7. 【POI 2010】反对称 Antisymmetry
  8. log4j2用Log4jContextSelector启动参数配置全局异步日志是如何使用disruptor
  9. Python+Selenium基础篇之3-打开和关闭IE/Chrome浏览器
  10. SQL Server 2014存储过程的备份和还原