温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么在python中调用tcpdump抓包过滤

发布时间:2021-05-19 17:27:38 来源:亿速云 阅读:602 作者:Leah 栏目:开发技术

这篇文章将为大家详细讲解有关怎么在python中调用tcpdump抓包过滤,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

#! /usr/bin/python   def tcpdump():  import subprocess, fcntl, os  # sudo tcpdump -i eth0 -n -s 0 -w - | grep -a -o -E "Host: .*|GET /.*"  cmd1 = ['tcpdump', '-i', 'eth0', '-n','-B', '4096','-s', '0', '-w', '-']  cmd2 = ['grep', '--line-buffered', '-a', '-o', '-E', 'Host: .*|GET /.*']  p1 = subprocess.Popen(cmd1, stdout=subprocess.PIPE)  p2 = subprocess.Popen(cmd2, stdout=subprocess.PIPE, stdin=p1.stdout)    flags = fcntl.fcntl(p2.stdout.fileno(), fcntl.F_GETFL)  fcntl.fcntl(p2.stdout.fileno(), fcntl.F_SETFL, (flags | os.O_NDELAY | os.O_NONBLOCK))  return p2     def poll_tcpdump(proc):  #print 'poll_tcpdump....'  import select  txt = None  while True:  # wait 1/10 second   readReady, _, _ = select.select([proc.stdout.fileno()], [], [], 0.1)  if not len(readReady):   break  try:   for line in iter(proc.stdout.readline, ""):   if txt is None:    txt = ''   txt += line  except IOError:   print 'data empty...'   pass  break  return txt     proc = tcpdump() while True:  text = poll_tcpdump(proc)  if text:  print '>>>> ' + text

运行效果:

怎么在python中调用tcpdump抓包过滤

python有哪些常用库

python常用的库:1.requesuts;2.scrapy;3.pillow;4.twisted;5.numpy;6.matplotlib;7.pygama;8.ipyhton等。

关于怎么在python中调用tcpdump抓包过滤就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI