Как сделать tcpdump python

Написал вот такой код с помощью subprocess

def get_pcap():
    global dump_process
    if dump_process is not None:
        dump_process.terminate()
        time.sleep(5)
        print("Dump finished", dump_process.returncode)
    tcpdump_command = ["sudo", '-S', "tcpdump", '-w', path.join('dumps', 'dump.pcap')]
    dump_process = subprocess.Popen(tcpdump_command, stdout=sys.stdout, stdin=subprocess.PIPE)
    dump_process.stdin.write(SUDO_PASS.encode())
    dump_process.stdin.close()
    return path.join('dumps', 'dump.pcap')

Но процесс tcpdump заканчивается не правильно, и файл поврежден. Пытался делать и send_signal и terminate, оба ничего не дали. Как правильно закончить tcpdump? Может есть какие-то библиотеки для дампов?


Ответы (0 шт):