python实现linux下抓包并存库功能


Posted in Python onJuly 18, 2018

最近项目需要抓包功能,并且抓包后要对数据包进行存库并分析。抓包想使用tcpdump来完成,但是tcpdump抓包之后只能保存为文件,我需要将其保存到数据库。想来想去shell脚本似乎不太好实现,于是用了比较热门的python来实现。不得不说,python丰富的第三方库确实是很强大,下面是具体的功能代码。

from apscheduler.scheduler import Scheduler
import os
import sys
import time
import MySQLdb
import ConfigParser
import Logger

def main():

  logger = Logger.Logger(logname='flowstat.log', loglevel=1, logger='flowstat').getlog()

  try:
    cf = ConfigParser.ConfigParser()
    cf.read('./flowstat.conf')

    filterNet1 = cf.get('packet', 'filterNet1')
    filterNet2 = cf.get('packet', 'filterNet2')
    packetFile = cf.get('packet', 'packetFile')

    db_host = cf.get('db', 'host')
    db_user = cf.get('db', 'user')
    db_passwd = cf.get('db', 'passwd')
    db_dbname = cf.get('db', 'dbname')

    conn = MySQLdb.connect(host=db_host, user=db_user, passwd=db_passwd, db=db_dbname, port=3306)

    os.system('nohup ./capturePacket.sh ' + filterNet1 + ' ' + filterNet2 + ' ' + packetFile + ' &')
  except Exception, e:
    logger.error(e)
    sys.exit(1)


  sched = Scheduler(daemonic = False)
  @sched.cron_schedule(day_of_week='0-4', hour='*', minute='0-59', second='*/60')
  def packagestat_job():
    logger.debug('stat package' + ' ' + time.strftime("%Y-%m-%d %H:%M:%S"))
    try:
      fos = open(packetFile, 'r+')
      lines = fos.readlines()
      values = []
      for line in lines:
        arr = line.split(',')
        if len(arr) > 4:
          values.append((arr[0].strip(), arr[2].strip(), arr[3].strip(), arr[4].strip()))

      if len(values) > 0:
        cur = conn.cursor()
        cur.executemany('insert into tbpk_packet(TimesMacs, LengthIps, Seq, Ack) values(%s,%s,%s,%s)', values)
        conn.commit()
        cur.close()

      fos.truncate(0)
      fos.close()
    except Exception, e3:
      Logger.error(e3)


  sched.start()

  while 1:
    time.sleep(60)

  conn.close()

if __name__ == '__main__':
  main()

shell脚本
#!/bin/sh
tcpdump -i eth0 -l >> *.txt

上面的功能涉及到了文件操作,数据库操作,定时任务等几个功能点。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python编程实现微信企业号文本消息推送功能示例
Aug 21 Python
python实现音乐下载器
Apr 15 Python
python中的json总结
Oct 11 Python
python执行精确的小数计算方法
Jan 21 Python
python使用MQTT给硬件传输图片的实现方法
May 05 Python
Python3中urlencode和urldecode的用法详解
Jul 23 Python
Flask框架单例模式实现方法详解
Jul 31 Python
pytorch自定义初始化权重的方法
Aug 17 Python
python实现的多任务版udp聊天器功能案例
Nov 13 Python
Jupyter notebook如何修改平台字体
May 13 Python
pytorch cuda上tensor的定义 以及减少cpu的操作详解
Jun 23 Python
Python字典取键、值对的方法步骤
Sep 30 Python
python调用tcpdump抓包过滤的方法
Jul 18 #Python
Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例
Jul 18 #Python
解决Python3中的中文字符编码的问题
Jul 18 #Python
Python使用Selenium模块实现模拟浏览器抓取淘宝商品美食信息功能示例
Jul 18 #Python
python 将print输出的内容保存到txt文件中
Jul 17 #Python
python 实现对数据集的归一化的方法(0-1之间)
Jul 17 #Python
Python计算开方、立方、圆周率,精确到小数点后任意位的方法
Jul 17 #Python
You might like
玩转图像函数库―常见图形操作
2006/09/03 PHP
第十二节--类的自动加载
2006/11/16 PHP
常用表单验证类,有了这个,一般的验证就都齐了。
2006/12/06 PHP
PHP 检查扩展库或函数是否可用的代码
2010/04/06 PHP
PHP MemCached高级缓存配置图文教程
2010/08/05 PHP
session在PHP大型web应用中的使用
2011/06/25 PHP
PHP中全局变量global和$GLOBALS[]的区别分析
2012/08/06 PHP
下拉列表多级联动dropDownList示例代码
2013/06/27 PHP
PHP使用array_merge重新排列数组下标的方法
2015/07/22 PHP
PHP处理CSV表格文件的常用操作方法总结
2016/07/01 PHP
PHP实现链式操作的三种方法详解
2017/11/16 PHP
精通Javascript系列之数值计算
2011/06/07 Javascript
详解JavaScript逻辑And运算符
2015/12/04 Javascript
jquery checkbox无法用attr()二次勾选问题的解决方法
2016/07/22 Javascript
简单实现IONIC购物车功能
2017/01/10 Javascript
webpack 2.x配置reactjs基本开发环境详解
2017/08/08 Javascript
浅谈Vue 初始化性能优化
2017/08/31 Javascript
vue源码入口文件分析(推荐)
2018/01/30 Javascript
angular 服务的单例模式(依赖注入模式下)详解
2018/10/22 Javascript
vue实现文字加密功能
2019/09/27 Javascript
JavaScript遍历数组的方法代码实例
2020/01/14 Javascript
[09:31]2016国际邀请赛中国区预选赛Yao赛后采访 答题送礼
2016/06/27 DOTA
python fabric实现远程操作和部署示例
2014/03/25 Python
python网络编程学习笔记(10):webpy框架
2014/06/09 Python
python中@property和property函数常见使用方法示例
2019/10/21 Python
Python CSS选择器爬取京东网商品信息过程解析
2020/06/01 Python
一款简洁的纯css3代码实现的动画导航
2014/10/31 HTML / CSS
捷克家具销售网站:SCONTO Nábytek
2020/01/02 全球购物
Craghoppers德国官网:户外和旅行服装
2020/02/14 全球购物
教师实习自我鉴定
2013/12/11 职场文书
教育局长自荐信范文
2013/12/22 职场文书
计算机专业求职信
2014/06/02 职场文书
校园安全广播稿范文
2014/09/25 职场文书
焦裕禄观后感
2015/06/03 职场文书
导游词之麻姑仙境
2019/11/18 职场文书
Android实现图片九宫格
2022/06/28 Java/Android