【问题标题】:Having a sniff going on at the same time as the program与程序同时进行嗅探
【发布时间】:2014-07-07 05:57:16
【问题描述】:

我有一个 python + Scapy 代码,可以用来嗅探数据包并测量它们的时间旅行。 除了sniff() 选项停止代码的运行之外,一切都运行良好。

所以如果我有一个如下所示的代码:

print "hello"
print "world"
sniff(iface="lo")
print "this will not show"

所以因为 sniff 正在运行,所以第 4 行将不会被执行。

我该如何改变呢? 提前谢谢!

【问题讨论】:

  • 你可以使用multiprocessing(甚至threading),但是并行处理比串行处理困难得多。考虑重新排列您的数据结构以进行串行、一次一个操作。
  • 我会,但即使我把“嗅探”放在开头,后面的代码也不会执行。
  • sniff 运行时您具体想做什么?

标签: python scapy sniffing


【解决方案1】:

我不确定这是否满足您的需求,但 sniff 采用 prn 关键字参数,用于在数据包进入时将其打印到屏幕上,但也可用于实际处理它们时间。

http://www.secdev.org/projects/scapy/doc/usage.html#simplistic-arp-monitor

例如:

def process(pkt):
    # do stuff

sniff(iface="lo", prn=process)

process 每收到一个数据包就会被调用一次。这可能允许您在收到数据包后执行其他任务,但仍不允许您执行任何通用后台任务。

【讨论】:

  • 这并不能阻止我的问题。由于“嗅探”还从不在“def”中的代码中嗅探流量
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-23
  • 2019-01-20
  • 2012-10-21
  • 2011-08-17
  • 1970-01-01
相关资源
最近更新 更多