Найти - Пользователи
Полная версия: tcpdump перенаправление в скрипт
Начало » Python для новичков » tcpdump перенаправление в скрипт
1
lobster
Всех приветствую!
Возможно тема поднималась, все таки рискну спросить:
Нужно чтобы каждый захваченный пакет tcpdump перенаправлялся в скрипт для обработки, ну или все это в скрипт завернуть:
import subprocess
p = subprocess.Popen("tcpdump -i eth1", shell=True, stdout=subprocess.PIPE)
print p.stdout.read()
короче, пока tcpdump не завершится, пакеты не отобразяться. Кстати с ping такая же бойда.
Приведите пожалуйста рабочий пример.
JOHN_16
Открываем Гугл, вводим в поиск запрос “Python subprocess”, первая ссылка на официальную документацию, одна из следующих на мою запись блога где все тоже самое но на русском плюс снабжено примерами.

Учитесь разбираться сами

Вот готовый пример кода, на Винде
# -*- coding: utf-8 -*-
import subprocess, datetime
p=subprocess.Popen('ping ya.ru -n 4', shell=True, stdout=subprocess.PIPE)
s=True
while s:
    s=p.stdout.readline().decode('cp866')
    print datetime.datetime.now(), s.strip()

Результат
2012-10-30 13:28:58.476000 
2012-10-30 13:28:58.476000 Обмен пакетами с ya.ru [93.158.134.203] по 32 байт:
2012-10-30 13:28:58.476000
2012-10-30 13:28:59.163000 Ответ от 93.158.134.203: число байт=32 время=679мс TTL=52
2012-10-30 13:29:00.116000 Ответ от 93.158.134.203: число байт=32 время=641мс TTL=52
2012-10-30 13:29:01.132000 Ответ от 93.158.134.203: число байт=32 время=650мс TTL=52
2012-10-30 13:29:02.148000 Ответ от 93.158.134.203: число байт=32 время=670мс TTL=52
2012-10-30 13:29:02.148000
2012-10-30 13:29:02.148000 Статистика Ping для 93.158.134.203:
2012-10-30 13:29:02.148000 Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь),
2012-10-30 13:29:02.148000 Приблизительное время приема-передачи в мс:
2012-10-30 13:29:02.148000 Минимальное = 641мсек, Максимальное = 679 мсек, Среднее = 660 мсек
2012-10-30 13:29:02.163000
odnochlen
lobster, проблема у тебя, видимо, в том, что read() хочет прочесть все сразу и ждет завершения.

Если надо читать построчно, на тройке можно использовать for line in p.stdout, на двойке он глючит
lobster
JOHN_16 Премного благодарен!
т.е. построчно в цикле, ясно!
odnochlen
По ссылке постом выше - альтернативный вариант.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB