python如何才能实时获取tcpdump的输出,pythontcpdump,linux tcpdum
python如何才能实时获取tcpdump的输出,pythontcpdump,linux tcpdum
linux tcpdump命令行执行后回显是一行一行输出的,但是如果用python的subprocess执行tcpdump命令就会成为一段一段的回显,实时性不高。这个怎么解决?有人说是tcpdump本身的原因,和linux缓存有关系,但是python有没有办法实现和命令行一行一行输出的效果。
代码如下
#coding=utf-8import subprocessp = subprocess.Popen("tcpdump udp -i eth0",shell=True,stdout=subprocess.PIPE)while p.stdout.readline()!=' ': line = p.stdout.readline() line = line.strip() print line
tcpdump -l 选项
#!/usr/bin/env pythonimport subprocesssubprocess.call("echo your_password | sudo -S tcpdump", shell=True)
你给的代码有bug 在这一行,while p.stdout.readline()!=' '
改正如下!
#coding=utf-8import subprocessp = subprocess.Popen("tcpdump udp -i eth0",shell=True,stdout=subprocess.PIPE)while True: line = p.stdout.readline() line = line.strip() if line == '': break print line
我也弄了这个, 用于被动启动某个端口服务!
import subprocess as sub# 注意参数-l很重要(行显)# 在Mac上测试, 所以加了sudopipe = sub.Popen(['sudo', 'tcpdump', '-l', '-nn', '-i', 'lo0', 'dst portrange 200000-30000'], stdout=sub.PIPE)while True: for row in iter(p.stdout.readline, b''): print(row)
编橙之家文章,
相关内容
- Python新手flask遇到500错误问题,python新手flask500,为什么
- Django做后台管理操作疑问,django后台管理,服务器使用的
- 想用python做个客户端,在二维码登录这个地方卡住了大家
- 我的python写入文件正常,打开后却是乱码格式为什么?
- 数据结构优化python将线性元祖转换成字典树的方法,结
- Python内建callable函数应用问题,pythoncallable,>Python ha
- 没有Python可以用Sublime text编辑器来运行Py文件吗?,,在一
- Ptyhon gb2312代表什么意思?能表示繁体中文吗,,查了下
- 求Python同时操作多个变量方法,python同时多个变量,题干
- Python替换url内参数值的方式是什么,python替换url内参
评论关闭