【问题标题】:Converting a DNS packet to a string using Scapy使用 Scapy 将 DNS 数据包转换为字符串
【发布时间】:2014-08-21 17:15:05
【问题描述】:

我想将 DNS 数据包转换为 DNS(packet).show() 那样的字符串。然而,show 方法所做的只是打印出信息。我想将完全相同的信息存储在一个字符串中。有什么具体的方法吗?

【问题讨论】:

  • 我看过类的方法。似乎没有任何方法可以做 show() 方法所做的事情

标签: python dns scapy


【解决方案1】:

以下代码 sn-p 会有所帮助:

>>> 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'
>>> 

【讨论】:

  • 哈哈!我没想到这个会被否决。好吧,无论谁反对它,请分享一个更好的方法来检索 pkt.show() 作为字符串。我目前在工作中使用这种方法,如果有更好的方法,我一定会使用它。
  • 这实际上正是我想要的。我敢肯定这不是最正统的做法,但它确实有效。我不知道为什么有人会对此投反对票。
猜你喜欢
  • 2016-04-19
  • 1970-01-01
  • 1970-01-01
  • 2017-03-22
  • 1970-01-01
  • 2015-10-29
  • 2015-11-21
  • 2013-10-26
  • 2018-03-29
相关资源
最近更新 更多