Scapy python脚本在mac

时间:2017-02-04 00:29:52

标签: python scapy

每次我使用scapy的send()函数时,它似乎打开/使用/访问/ dev / bpf设备,并且在我退出脚本之前似乎永远不会释放它们。我不完全理解/ dev / bpf,除了它代表Berkley数据包过滤器,但问题是它在我的机器上达到了极限似乎是/ dev / bpf255我的脚本崩溃做了“太多打开文件”。

代码:

from scapy.all import *
import threading

q = 0

def printit():
    global q
    q += 1
    print(q)
    threading.Timer(1.0, printit).start()
    data= "Test"
    a = IP(dst="255.255.255.255")/UDP(dport=3520)/data
    send(a)

printit()

错误:

File "/usr/local/lib/python3.6/site-packages/scapy/sendrecv.py", line 73, in sndrcv
    rdpipe,wrpipe = os.pipe()
OSError: [Errno 24] Too many open files

我假设它是由/ dev / bpf设备引起的,因为当我运行时:

lsof |grep {script pid} 

我看到对于每个发送的数据包,似乎还有一个/ dev / bpf。

例如我的grep结果是:

Python    39601             user   91w      CHR              23,44        0t107   15141 /dev/bpf44

他们永远不会被释放。我似乎无法弄清楚如何清理它。

0 个答案:

没有答案