Python处理网络数据包示例(pcapy读pcap文件)

最近在围观python,找了个pcapy处理pcap数据的代码

非常非常久以前的东西了,应该是在项目组做的半成品吧。今天重装机器,不经意翻出来了。这个脚本是读入一个libpcap保存的文件,按照要求过滤数据,最后将过滤后的数据保存到一个新文件中。运行环境应该是2.5吧。

原文在http://muyublog.appspot.com/2010/08/31/python-pcapy.html

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

#!/usr/bin/python

# Copyright (c) 2007

#

# Pcap dump file filter.

#

# This tools filter some packets in pcap capture files

# here is the packet send by our robot

#

# Authors:HonetNet Project

#

import sys

import string

from exceptions import Exception

import pcapy

from pcapy import *

def Drop(data):

"""Check if this packet should be drop

"""

#return True

return False

def filefilter(filename):

"""filter a single file

"""

# Open file

try:

processor = open_offline(filename)

except pcapy.PcapError, e:

print "Can't open file: "+filename

print "\t",e

return 1

#check if it's the Ether packet

if pcapy.DLT_EN10MB != processor.datalink():

print "Not a Ethernet packet..."

return 2

#Open the file store the data after filter

if sys.platform == 'win32':

pos = filename.rfind('\\')

elif sys.platform == 'linux2':

pos = filename.rfind('/')

else:

print "Running on a unexpect OS"

sys.exit(1)

if pos == -1:

newfile = "filtered-"+filename

else:

newfile = filename[:pos+1] + 'filtered-' + filename[pos+1:]

print newfile

try:

global dumper

dumper = processor.dump_open(newfile)

except pcapy.PcapError, e:

print "Can't write packet to:", newfile

print "\t",e

return 3 www.2cto.com

processor.loop(0, packetHandler)

def packetHandler(hdr, data):

"""process with single packet

"""

if not Drop(data):

global dumper

dumper.dump(hdr, data)

# Process command-line arguments.

if __name__ == '__main__':

if len(sys.argv) <= 1:

print "Usage: %s " % sys.argv[0]

sys.exit(1)

filefilter(sys.argv[1])

相关内容

暂无相关文章

python读取pcap获得端口_Python处理网络数据包示例(pcapy读pcap文件)相关推荐

  1. Linux使用tcpdump抓取网络数据包示例

    tcpdump是linux命令行下常用的的一个抓包工具,记录一下平时常用的方式,测试机器系统是ubuntu 12.04. tcpdump的命令格式 tcpdump的参数众多,通过man tcpdump ...

  2. python读取时间序列csv可视化_Python获取时序数据并进行可视化分析

    本帖最后由 林宝宝 于 2019-7-31 17:29 编辑 问题导读: 1.获取第三方平台的接口数据的方法是什么? 2.怎么做数据清洗与合并?主要有数据类型转换.重新排序.索引重置.数据合并 3.时 ...

  3. python应用系列教程——python使用scapy监听网络数据包、按TCP/IP协议进行解析

    分享一个朋友的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!大家可以看看是否对自己有帮助:点击打开 docker/kubernetes入门视频教程 全栈工程师开发手册 (作者:栾鹏) pyth ...

  4. python读取只读word只读_Python用于NLP :处理文本和PDF文件

    提示:代码图片可以点击全屏查看,双指操作还可以放大缩小. 这是我的Python用于自然语言处理(NLP)系列文章的第一篇文章.在本文中,我们将从Python for NLP的基础知识开始.我们将看到如 ...

  5. python读取word指定内容_python读取word 中指定位置的表格及表格数据

    1.Word文档如下: 2.代码 # -*- coding: UTF-8 -*- from docx import Document def readSpecTable(filename, specT ...

  6. pcap文件解析工具_【免费毕设】PHP网络数据包分析工具的设计与开发(源代码+论文)...

    点击上方"蓝字"关注我们目录 系统设计 网络数据包分析系统的设计 整个网络数据报分析工具采用模块化的设计思想,原因是许多程序太长或太复杂,很难写在单一单元中.如果把代码分为较小的功 ...

  7. 流量Ⅰ--一文了解pcap网络数据包的结构?

    一文了解pcap网络数据包如何分析 0x00 基础知识 1.OSI七层模型每层的作用 2.TCP/IP 结构及具有五层协议的结构体系 0x01 数据是如何在各层次间传输的 1.数据帧的封装 2.数据格 ...

  8. python小数乘法_Polymorph:支持几乎所有现有协议的实时网络数据包操作框架

    Polymorph是一个用Python3编写的框架,其允许实时修改网络数据包,为用户提供对数据包内容的最大化控制.该框架旨在实现任何现有协议(包括没有公共规范的私有协议)的网络数据包的实时修改.除此之 ...

  9. 将任意文件转换为Pcap网络数据包传输

    本文将介绍一款能够直接将文件构造成为pcap数据包的工具,作为我的专栏<Pcap网络数据包处理方法大全>中的一篇. 在一些测试场景,尤其是安全测试的场景,对于一个文件在传输过程中生成的数据 ...

最新文章

  1. JAVscript对象
  2. 数据文件实验#OCP#
  3. [面向对象] ABAP中程序类如何转化成全局类
  4. 年轻代为什么要设置两个Survivor区
  5. java timestamp是什么类型_JAVA比较2个Timestamp类型的时间大小-由此引发的思考
  6. 初学ACM之路(训练大纲)
  7. shopex安装Zend Optimizer - 3.3.0后依然乱码
  8. 教你用Python制作一款自己的杀毒程序
  9. java samphore 连接池_ADOConnection数据库连接池
  10. Javascript实现的倒计时时钟
  11. lwip-1.4.1文档rawapi中文翻译
  12. ubuntu在 hdfs上创建一个文件夹_NAS上如何创建和使用加密文件夹?
  13. 牛客网模拟笔试——黑化的牛牛(JavaScript)
  14. ADT(Android) — Eclipse开发连接夜神模拟器方法(亲测有效!)
  15. FlashFXP连接虚拟机ubuntu 16.04
  16. 基于无线网络的环境监测系统
  17. godot引擎学习4
  18. HTML 几种特别分割线特效
  19. 免费拿和平精英模拟器
  20. nemo 替换ubuntu 自带的文件管理器

热门文章

  1. Jquery跨域调用(JSONP)遇到error问题的解决
  2. Bash Shell 的一些语法
  3. Visual Studio 2010 Beta 2 公开下载地址
  4. 反编译C#的dll文件并修改,再重新生成dll
  5. 百练_4123 马走日(深搜)
  6. 【转】【OPenGL】OPenGL 画图板-- 中点算法画圆
  7. Ubuntu 10不能通过改source.list装JDK 1.6
  8. Vue三大核心概念之一(属性)
  9. 对比几段代码,看看你是 Python 菜鸟还是老鸟
  10. 21、List遍历时修改元素的问题