使用Scapy将DNS数据包转换为字符串

2 投票
1 回答
799 浏览
提问于 2025-04-18 18:06

我想把一个DNS数据包转换成字符串,就像DNS(packet).show()那样。不过,show这个方法只是把信息打印出来而已。我想把这些信息存储到一个字符串里。有没有什么特别的方法可以做到这一点?

1 个回答

2

下面的代码片段会对你有帮助:

>>> from scapy.all import *
>>> import sys
>>> from cStringIO import StringIO
>>> old_stdout = sys.stdout
>>> sys.stdout = mystdout = StringIO()
>>> pkt = DNS()
>>> pkt.show()
>>> sys.stdout = old_stdout
>>> mystdout.getvalue()
'###[ DNS ]###\n  id        = 0\n  qr        = 0\n  opcode    = QUERY\n  aa        = 0\n  tc        = 0\n  rd        = 0\n  ra        = 0\n  z         = 0\n  rcode     = ok\n  qdcount   = 0\n  ancount   = 0\n  nscount   = 0\n  arcount   = 0\n  qd        = None\n  an        = None\n  ns        = None\n  ar        = None\n'
>>> 

撰写回答