首页 > 编程语言 >python scapy dns 包字段解析

python scapy dns 包字段解析

时间:2022-09-28 23:04:47浏览次数:45  
标签:None python scapy BitField qd DNSRRCountField bit 部分 包字段

qr:       0表示查询报文,1表示响应报文
opcode:   通常值为0(标准查询),其他值为1(反向查询)和2(服务器状态请求)。
aa:      表示授权回答(authoritative answer)
tc:      表示可截断的(truncated)
rcode:     返回码,通常为0(没有差错)和3(名字差错)表示期望递归
ra:      表示可用递归
z:         随后3bit必须为0(保留字段)
rcode:    返回码,通常为0(没有差错)和3(名字差错)

 

qd 问题部分
an 回答部分
ns 管理机构部分和
ar 附加信息部分

qd 它有三部分组成:
  qname(询问域名,比如说www.sina.com它由一个或者多个标示符序列组成。每个标示符已首字节数的计数值来说明该标示符长度,每个名字以0结束。计数字节数必须是0~63之间。该字段无需填充字节。
  qtype(询问类型,表示希望得到什么类型的回答),通常设为A,表示是由域名获得该域名的IP地址,当然还有其他的类型,这里不作介绍。
  qclass(询问类),此处一般为IN,表示为Internet名字空间,别的类这里不作介绍。
  后面的 an(回答部分),ns(管理机构部分),ar(附加信息部分),这三部分作为DNS请求包来说一般是不用写的,为空。

标准DNS字段如下:

>>> ls(DNS)

length     : ShortField (Cond)                   = (None)

id         : ShortField                          = (0)

qr         : BitField (1 bit)                    = (0)

opcode     : BitEnumField (4 bits)               = (0)

aa         : BitField (1 bit)                    = (0)

tc         : BitField (1 bit)                    = (0)

rd         : BitField (1 bit)                    = (1)

ra         : BitField (1 bit)                    = (0)

z          : BitField (1 bit)                    = (0)

ad         : BitField (1 bit)                    = (0)

cd         : BitField (1 bit)                    = (0)

rcode      : BitEnumField (4 bits)               = (0)

qdcount    : DNSRRCountField                     = (None)

ancount    : DNSRRCountField                     = (None)

nscount    : DNSRRCountField                     = (None)

arcount    : DNSRRCountField                     = (None)

qd         : DNSQRField                          = (None)

an         : DNSRRField                          = (None)

ns         : DNSRRField                          = (None)

ar         : DNSRRField                          = (None)



标签:None,python,scapy,BitField,qd,DNSRRCountField,bit,部分,包字段
From: https://blog.51cto.com/u_472169/5721157

相关文章

  • python虚拟环境管理
    为什么要创建虚拟环境?给不同的项目创建虚拟环境,针对不同项目只需要加载使用的包,打包python程序的时候可以大量的减少占用的空间,加快打包速度,减少文件大小。windows环境......
  • 使用python pip 命令时提示WARNING: Ignoring invalid distribution ip的解决方案
    问题描述:在使用pythonpip命令时提示WARNING:Ignoringinvaliddistributionip,如图所示:原因分析:安装package时中途中断。解决方案:在相应目录下(本人目录为:D:\Program......
  • Python实验报告(第四周)
    一、实验目的与要求1.学会序列的使用2.学会列表、元组、字典、集合的使用3.学会区分列表、元组、字典、集合二、实验环境python版本:3.10(64-bit)三、实验过程1.实例一......
  • python pip 错误 ModuleNotFoundError: No module named pip._internal 解决办法
    问题升级新版pip之后,不论是本地,还是使用anaconda环境,都有可能在用pip下载的时候出现错误:ModuleNotFoundError:Nomodulenamed'pip._internal',有可能是与旧版冲突......
  • 基于Python的学生成绩在线选课管理系统设计与实现-计算机毕业设计源码+LW文档
    摘要网络技术的快速发展给各行各业带来了很大的突破,也给各行各业提供了一种新的管理模块,对于学生成绩管理系统将是又一个传统管理到智能化信息管理的改革,对于传统的学生成......
  • Python办公实战!​按姓名拆分Excel为单独文件,微信自动发给相应联系人
    大家好,这里是Python程序员晚枫,今天给大家分享一篇读者的来稿:Python+Excel自动化办公,在工作中的实际应用。欢迎大家总结pipinstallpython-office的使用经验,联系我投稿......
  • Python3 字典 items() 方法
    描述:Python字典items()方法以列表返回视图对象,是一个可遍历的key/value对。dict.keys()、dict.values()和dict.items()返回的都是视图对象(viewobjects),提供了字典实......
  • Python break 语句
    Pythonbreak语句,就像在C语言中,打破了最小封闭for或while循环。break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。break语......
  • Python continue 语句
    Pythoncontinue语句跳出本次循环,而break跳出整个循环。continue语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。continue语句用在while和for循环中。......
  • Python3 range() 函数用法
    Python3range()函数返回的是一个可迭代对象(类型是对象),而不是列表类型,所以打印的时候不会打印列表。Python3list()函数是对象迭代器,可以把range()返回的可迭代对象转为......