- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Python 来解析十六进制格式的 DNS RDATA 值(应该符合 RFC1035 标准),这些值是在创建或删除记录时从 Windows DNS 服务器的审核日志中生成的。我已经尝试了几个 Python dns-modules 并且认为我正在接近 dnslib ,但是我找到的所有文档都是用于解析从网络捕获的完整 DNS 数据包,包括问题和答案 header ++。
审计日志只提供类类型和它存储在 AD(Active Directory 集成区域)中的 RDATA,所以我想我可以使用 parse(buffer,length)
方法个人记录类型类来解析它,但到目前为止我所有的尝试都失败了。
示例数据:
Type = MX
RDATA = 0A0011737276312E636F6E746F736F2E636F6D2E
应该解析为:
preference = 10
mx = srv1.contoso.com.
最近的尝试:
import dnslib
import binascii
mxrdata = binascii.unhexlify(b'0A0011737276312E636F6E746F736F2E636F6D2E')
b = dnslib.DNSBuffer(mxrdata)
mx = dnslib.MX.parse(b,len(b))
这失败了:
Traceback (most recent call last):
File "C:\Python37-32\lib\site-packages\dnslib\dns.py", line 1250, in parse
mx = buffer.decode_name()
File "C:\Python37-32\lib\site-packages\dnslib\label.py", line 235, in decode_name
(length,) = self.unpack("!B")
File "C:\Python37-32\lib\site-packages\dnslib\buffer.py", line 103, in unpack
data = self.get(struct.calcsize(fmt))
File "C:\Python37-32\lib\site-packages\dnslib\buffer.py", line 64, in get
(self.offset,self.remaining(),length))
dnslib.buffer.BufferError: Not enough bytes [offset=20,remaining=0,requested=1]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python37-32\lib\site-packages\dnslib\dns.py", line 1254, in parse
(buffer.offset,e))
dnslib.dns.DNSError: Error unpacking MX [offset=20]: Not enough bytes [offset=20,remaining=0,requested=1]
谁能帮帮我?甚至可以使用这个模块吗?
最佳答案
您对 RDATA 的编码有点错误:
首先,您指定首选项:
0A00
然而,这不是 10(因为整数编码时 MSB 优先,而不是 LSB 优先),而是 2560。所以这应该是
000A
然后,您尝试在此处对主机名进行编码:
11737276312E636F6E746F736F2E636F6D2E
0x11
应该是长度字节,其余是域名srv1.contoso.com.
。但这不是主机名编码的工作方式。您必须使用长度字节分别对每个标签 进行编码,并使用长度为 0 的标签终止主机名。所以这应该是:
04 73727631 07 636F6E746F736F 03 636F6D 00
s r v 1 . c o n t o s o . c o m .
这加起来是:
mxrdata = binascii.unhexlify(b'000A047372763107636F6E746F736F03636F6D00')
解析器应该成功。因此,如果您真的以这种无效格式获得 RDATA,则必须先将其转换为符合 rfc1035 标准。
关于python - 使用 python 解析 DNS RDATA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57748273/
我有很多 .RData 文件,其中包含我在之前的分析中保存的一个数据框,并且每个加载的文件的数据框都具有相同的名称。因此,例如使用 load(file1.RData) 我得到一个名为 'df' 的数据
我有一个矩阵: mat<-matrix(data=1:30,ncol=10,nrow=3) 我想将其保存到 Rdata: save(mat, file="m.Rdata") 然后加载回来: m<-lo
我有大约 30 行代码可以做到这一点(获得 Z 分数): data$z_col1 <- (data$col1 - mean(data$col1, na.rm = TRUE)) / sd(data$co
有没有办法可以用另一个替换 .Rdata 文件中的表?我可以使用 edit(x) 命令来编辑它,但是手动执行此操作会花费大量时间;此外,我还没有找到向其中添加行的方法。 最佳答案 我认为您需要阅读一些
看完this question我试图清理我的工作区,发现每次打开 R 时,我最近删除的所有原始项目都会恢复。然后我检查了 .RData ,发现它在几周内没有被修改,尽管我反复保存了工作区图像。 .RD
假设我们有这种情况: 我有很多 .RData 文件,它们超过 100mb(无论如何,但很大)。 在每个 .RData 文件中都有一个名为“Dataset_of_interest”的数据集,它们都是我想
我要加载 PakPMICS2018bh.RData数据来自 https://github.com/myaseen208/PakPMICS2018Data/并使用以下代码引发错误: library(RC
当我们想要将全局环境保存到磁盘时,我们使用 save(list = ls(.GlobalEnv), file = "data.Rdata") - 好的。 当需要保存一个特定对象时,我们使用 save(
我想将数据保存到 .RData 文件中。 例如,我想将两个 csv 文件和一些信息保存到 1.RData 中。 这里,我有两个 csv 文件 1) file_1.csv contains object
我有一个 RData 文件,它变得太大,无法使用 load() 加载到我的计算机上。命令。它包含一个包含约 300 万个观测值和约 100 个变量的数据框。 我想要 加载文件,也许使用一些 bigda
我正在尝试保护我保存在 R 中的一些数据文件。有没有办法用密码保护 R 数据文件 (.Rdata) ? 谢谢 最佳答案 在同一脚本中创建文件后,您可以调用 GnuPG 以使用公钥加密来加密文件。这将另
我有一个函数,我必须将数据集传递给它。 loading <- function(dataset){ merchants <- load(dataset) return(merchants) } 但是当
当加载 .RData 文件时,每次都会生成相同的随机数。例如试试这个:(在终端中输入这些) rm(list=ls()) x=10 #Just some random value save.image(
我正在尝试将指定目录中所有 .RData 文件的data frame 对象的数据加载到单个数据表。这就是我尝试这样做的方式: library(data.table) fileList str(dat
我是 R 的新手,我正在尝试将 .Rdata 格式文件转换为逗号分隔的文本文件格式。有人可以帮我解决这个问题吗? 最佳答案 load("yourData.RData") ls() #returns a
我有一个包含各种对象的Rdata文件: New.Rdata |_ Object 1 (e.g. data.frame) |_ Object 2 (e.g. matrix) |_...
我必须加载 isfar.RData 文件才能将其用于其他计算(此处描述并不重要)。我想简单地看看 isfar.RData 文件中的数据如何,例如它携带什么数字、列、行。 首先我加载我的文件: isfa
我有一个矢量 a=0.01 然后我创建一个 mat a = 1 > get('a') [1] 1 与save一起使用: to_be_saved_obj = paste("mat", a, sep =
我发现自己需要更新之前使用 save 创建的 Rdata 文件中的一两个数据对象。如果我不小心加载文件,我可能会忘记重新保存文件中的一些对象。举个例子,我正在开发一个包,其中包含一些存储在 sysda
如果您尝试将任何数据集保存到“PRN.rData”,您将收到错误消息: d<- data.frame(D=NA, K=NA) save(d, file="E:/PRN.rData") Error in
我是一名优秀的程序员,十分优秀!