python+scapy带界面抓包分析
前言:
这是一个乱七八糟的程序,想到什么就加了什么,而且bug挺多。贴出来只是为了记录我的学习过程233333
- scapy用于抓包分析
- PyQt4用于界面展示
- 使用MySQL存储
正题
代码块
全部代码,如下:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import sys
import scapy_http.http as HTTP
from scapy.all import *
import threading
from scapy.error import Scapy_Exception
import MySQLdb
from PyQt4 import QtCore, QtGui
#一定要用root运行,不然不能抓包,详细参考net-creds
reload(sys)
sys.setdefaultencoding('utf-8')
conn = MySQLdb.connect(
host='localhost',
port=3306,
user='root',
passwd='root',
db='python_db',
)#数据库设置
cur = conn.cursor()
#建表
#create table mypkt(id int, edst varchar(30), esrc varchar(30), ipsrc varchar(20), sport varchar(15), ipdst varchar(20), dport varchar(15), seq varchar(15), ack varchar(15),load varchar(5000);
global count,pop3,smtp,ftp,telnet,zhttp
count = 0
pop3 = 0
smtp = 0
ftp = 0
telnet = 0
zhttp = 0
#sniff的回调函数
def callback(pkt):
#用来计数
global count, pop3, smtp, ftp, telnet, zhttp
if HTTP.HTTPRequest or HTTP.HTTPResponse in pkt:
zhttp = zhttp+1
http(pkt)
if(pkt[TCP].sport==110 or pkt[TCP].dport==110):
pop3 = pop3 +1
mypop3(pkt)
if (pkt[TCP].sport == 25 or pkt[TCP].dport == 25):
smtp = smtp +1
mystmp(pkt)
if(pkt[TCP].sport == 21 or pkt[TCP].dport ==