subprocess - python实时获取tcpdump输出
天蓬老师
天蓬老师 2017-04-18 10:17:45
0
4
868

linux tcpdump命令行执行后回显是一行一行输出的,但是如果用python的subprocess执行tcpdump命令就会成为一段一段的回显,实时性不高。这个怎么解决?有人说是tcpdump本身的原因,和linux缓存有关系,但是python有没有办法实现和命令行一行一行输出的效果。
代码如下

#coding=utf-8
import subprocess

p = subprocess.Popen("tcpdump udp -i eth0",shell=True,stdout=subprocess.PIPE)

while p.stdout.readline()!=' ':

    line = p.stdout.readline()
    line = line.strip()
    print line
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全員に返信(4)
刘奇

tcpdump -lオプション

いいねを押す +0
刘奇

あなたが指定したコードにはこの行にバグがありますが、p.stdout.readline()!=' '
次のように修正します。

リーリー
いいねを押す +0
洪涛

リーリー

いいねを押す +0
伊谢尔伦

私もこれを作り、特定のポートサービスを受動的に開始するために使用していました!

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート