import json
from django.shortcuts import render, redirect, reverse
from django.core.paginator import Paginator
from web.models import File,RealTimeMonitor
from scapy.all import *
import os
import time
import urllib.parse
# Create your views here.
''' IDS index '''
def index(request):
return render(request, 'index.html')
''' IDS index redirect '''
def indexRedirect(request):
return redirect(reverse("index"))
def protocol_table(request):
return render(request, 'protocol_table.html')
'''file upload and delete view function '''
def package_upload(request):
if request.method == 'POST':
if 'upload' in request.POST:
try:
file = request.FILES['file']
file_model = File(name=file.name, path=os.path.join('./pcapng_files', file.name))
file_model.save()
destination = open(os.path.join("./pcapng_files", file.name), 'wb+')
for chunk in file.chunks():
destination.write(chunk)
destination.close()
return render(request, 'package_upload.html',
{'success_message': "上传文件成功"}
)
except:
return render(request, 'package_upload.html',
{'error_message': "你没有选择文件"}
)
elif 'delete' in request.POST:
try:
file_name = request.POST.get('file_name')
file = File.objects.get(name=file_name)
os.remove(file.path)
file.delete()
return render(request, 'package_upload.html',
{'delete_success_message': "删除文件成功"}
)
except:
return render(request, 'package_upload.html',
{"delete_error_message": "删除文件失败"}
)
else:
return render(request, 'package_upload.html')
''' protocol resolution view function '''
res, proto_res, time_res = None, None, None
def protocol_resolution(request):
if request.method == 'POST':
try:
file_name = request.POST.get('file_name')
file_path = File.objects.get(name=file_name).path
pcaps = rdpcap(file_path)
global res, proto_res, time_res
res = pcaps_analysis(pcaps)
proto_res, time_res = chart(res)
# 对字典排个序
time_res = sorted(time_res.items(), key=lambda x : x[0])
time_res = dict(time_res)
return protocol_resolution_p(request)
except:
return render(request, 'protocol_resolution.html', {"error_message": "文件不存在"})
else:
return render(request, 'protocol_resolution.html')
'''protocol resolution paging show function'''
def protocol_resolution_p(request, pIndex = 1):
try:
p = Paginator(res, 10)
if pIndex < 1:
pIndex = 1
if pIndex > p.num_pages:
pIndex = p.num_pages
resTen = p.page(pIndex)
context = {"res": resTen, "flag": True, "pIndex": pIndex,
"pagelist": p.page_range[max(0, pIndex - 3):min(pIndex + 3, p.num_pages)],
"proto_data": json.dumps(proto_res), "time_data": json.dumps(time_res)}
return render(request, 'protocol_resolution_p.html', context)
except:
return redirect(reverse("protocol_resolution"))
''' pcap file analysis main function '''
def pcaps_analysis(pcaps):
res=[]
for i in range(len(pcaps)):
No = i + 1
ltime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(int(pcaps[i].time)))
source = ''
destination = ''
protocol = ''
length = len(pcaps[i])
information = ''
# Ethernet
if pcaps[i].haslayer('Ether'):
# IPv4
if pcaps[i].type == 2048:
source = pcaps[i]['IP'].src
destination = pcaps[i]['IP'].dst
information = pcaps[i].show(dump=True)
# TCP
if pcaps[i].proto == 6:
# HTTP
if pcaps[i].sport == 80 or pcaps[i].dport == 80:
if pcaps[i].haslayer('Raw'):
if pcaps[i].load.find(b'HTTP') != -1 and pcaps[i]['TCP'].flags == 0x18:
protocol = 'HTTP'
information = pcaps[i].load.splitlines()[0].decode()
else:
protocol = 'TCP'
else:
protocol = 'TCP'
# HTTPS
elif pcaps[i].sport == 443 or pcaps[i].dport == 443:
if pcaps[i].haslayer('Raw') and pcaps[i]['TCP'].flags == 0x18:
protocol = 'TLS'
else:
protocol = 'TCP'
else:
protocol = 'UnKnown'
information = "Can't analyze the pcapng packet"
# UDP
elif pcaps[i].proto == 17:
# DNS
if pcaps[i].haslayer('DNS'):
protocol = 'DNS'
# SSDP
elif pcaps[i].sport == 1900 or pcaps[i].dport == 1900:
protocol = 'SSDP'
# DHCP
elif pcaps[i].sport == 67 or pcaps[i].dport == 67:
protocol = 'DHCP'
else:
protocol = 'UnKnown'
information = "Can't analyze the pcapng packet"
# ICMP
elif pcaps[i].proto == 58:
protocol = 'ICMP'
else:
protocol = 'UnKnown'
information = "Can't analyze the pcapng packet"
# IPv6
elif pcaps[i].type == 34525:
source = pcaps[i]['IPv6'].src
destination = pcaps[i]['IPv6'].dst
information = pcaps[i].show(dump=True)
# TCP
if pcaps[i].nh == 6:
# HTTP
if pcaps[i].sport == 80 or pcaps[i].dport == 80:
if pcaps[i].haslayer('Raw'):
if pcaps[i].load.find(b'HTTP') != -1 and pcaps[i]['TCP'].flags == 0x18:
protocol = 'HTTP'
information = pcaps[i].load.splitlines()[0].decode()
else:
protocol = 'TCP'
else:
protocol = 'TCP'
# HTTPS
elif pcaps[i].sport == 443 or pcaps[i].dport == 443:
if pcaps[i].haslayer('Raw') and pcaps[i]['TCP'].flags == 0x18:
protocol = 'TLS'
else:
protocol = 'TCP'
else:
protocol = 'UnKnown'
information = "Can't analyze the pcapng packet"
# UDP
elif pcaps[i].nh == 17:
# DNS
if pcaps[i].haslayer('DNS'):
protocol = 'DNS'
# SSDP
elif pcaps[i].sport == 1900 or pcaps[i].dport == 1900:
protocol = 'SSDP'
# DHCP
elif pcaps[i].sport == 67 or pcaps[i].dport == 67:
protocol = 'DHCP'
else:
protocol = 'UnKnown'
information
没有合适的资源?快使用搜索试试~ 我知道了~
毕业设计-基于监督学习的web入侵检测系统源码(前后端源码+数据库+使用文档).zip
共2001个文件
js:1290个
css:369个
html:121个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 24 浏览量
2024-05-26
13:12:37
上传
评论 2
收藏 23.69MB ZIP 举报
温馨提示
数据收集: 从网络中收集数据包、日志或其他相关数据。这些数据可以包括网络流量、系统日志、用户行为等。 数据预处理: 对收集到的数据进行清洗、转换和标准化,以便后续的分析和建模。这可能涉及到特征提取、缺失值处理、异常值检测等。 特征提取: 从原始数据中提取有意义的特征,以便用于机器学习模型的训练。这些特征可以是关于网络流量的统计信息、协议字段、IP地址、端口号等。 模型训练: 使用监督学习算法(如决策树、支持向量机、神经网络等)对标记的恶意行为和正常行为进行建模。训练过程需要标记的数据集来指导模型学习如何区分恶意行为和正常行为。 模型评估: 使用测试数据集评估模型的性能,通常使用指标如准确率、召回率、精确率和F1分数来评估模型的效果。 部署和实时监测: 将训练好的模型部署到实际的网络环境中,对实时产生的数据进行监测和分类。这可能涉及将模型集成到网络设备、防火墙或专用的入侵检测系统中。 持续改进: 监督学习是一个迭代的过程,系统需要不断地收集新的数据、重新训练模型,并且根据新的威胁和攻击方式进行调整和改进。 这些组件可以构建一个有效的监督学习的网络入侵检测系统,帮助网络管理员
资源推荐
资源详情
资源评论
收起资源包目录
毕业设计-基于监督学习的web入侵检测系统源码(前后端源码+数据库+使用文档).zip
(2001个子文件)
bootstrap.css 143KB
bootstrap.min.css 118KB
AdminLTE.css 109KB
AdminLTE.min.css 89KB
AdminLTE-without-plugins.css 88KB
AdminLTE-without-plugins.min.css 72KB
ionicons.css 56KB
ionicons.min.css 50KB
_all-skins.css 47KB
_all-skins.min.css 41KB
font-awesome.css 37KB
jquery-ui.css 35KB
jquery-ui.css 35KB
jquery-ui.css 35KB
jquery-ui.css 35KB
jquery-ui.css 35KB
jquery-ui.css 35KB
jquery-ui.css 34KB
jquery-ui.css 34KB
jquery-ui.css 34KB
jquery-ui.css 34KB
jquery-ui.css 34KB
jquery-ui.css 34KB
jquery-ui.css 34KB
jquery-ui.css 34KB
jquery-ui.css 34KB
jquery-ui.css 34KB
jquery-ui.css 34KB
jquery-ui.css 34KB
jquery-ui.css 34KB
jquery-ui.css 34KB
jquery-ui.css 34KB
jquery-ui.css 34KB
jquery-ui.css 34KB
jquery-ui.css 34KB
jquery-ui.css 34KB
font-awesome.min.css 30KB
jquery-ui.min.css 30KB
jquery-ui.min.css 29KB
jquery-ui.min.css 29KB
jquery-ui.min.css 29KB
jquery-ui.min.css 29KB
jquery-ui.min.css 29KB
jquery-ui.min.css 29KB
jquery-ui.min.css 29KB
jquery-ui.min.css 29KB
jquery-ui.min.css 29KB
jquery-ui.min.css 29KB
jquery-ui.min.css 29KB
jquery-ui.min.css 29KB
jquery-ui.min.css 29KB
jquery-ui.min.css 29KB
jquery-ui.min.css 29KB
jquery-ui.min.css 29KB
jquery-ui.min.css 29KB
jquery-ui.min.css 29KB
jquery-ui.min.css 29KB
jquery-ui.min.css 29KB
jquery-ui.min.css 29KB
jquery-ui.min.css 29KB
jquery-ui.min.css 29KB
jquery-ui.min.css 29KB
bootstrap-theme.css 26KB
bootstrap-datepicker3.standalone.css 23KB
bootstrap-theme.min.css 23KB
bootstrap-datepicker3.css 22KB
bootstrap-datepicker3.standalone.min.css 21KB
_all.css 21KB
bootstrap-datepicker3.min.css 21KB
google_fonts.css 18KB
bootstrap-datepicker.standalone.css 18KB
theme.css 17KB
select2.css 17KB
theme.css 17KB
theme.css 17KB
theme.css 17KB
theme.css 17KB
theme.css 17KB
theme.css 17KB
theme.css 17KB
theme.css 17KB
theme.css 17KB
theme.css 17KB
theme.css 17KB
theme.css 17KB
theme.css 17KB
theme.css 17KB
theme.css 17KB
theme.css 17KB
theme.css 17KB
theme.css 17KB
theme.css 17KB
theme.css 17KB
theme.css 17KB
theme.css 17KB
theme.css 17KB
bootstrap-datepicker.css 17KB
theme.css 17KB
bootstrap-datepicker.standalone.min.css 16KB
bootstrap-datepicker.min.css 15KB
共 2001 条
- 1
- 2
- 3
- 4
- 5
- 6
- 21
资源评论
- kefuxiaohui2024-06-14资源很不错,内容和描述一致,值得借鉴,赶紧学起来!
荒野大飞
- 粉丝: 9698
- 资源: 926
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功