使用Scapy将DNS数据包转换为字符串
我想把一个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'
>>>