最新要闻
- 当前焦点!RTX 4070显卡首发驱动531.61发布:4款游戏优化、修复黑屏崩溃
- 今日观点!南京动物园回应网红猴被欺负困在水中:没有霸凌 会游泳
- 欧洲探测器启程奔赴木星
- 世界速讯:20万元买特斯拉?陶琳甩出5张图:中国价格全球最低
- 天天速看:高通垄断全球基带!中国紫光展锐排第4:2G/3G/4G/5G都很难
- 环球热议:仙履奇缘3中文版央视网 仙履奇缘3国语版免费
- 全球快资讯:美光被审查 国产存储芯片崛起的机会来了?
- 1L体积塞进电源!联想推出小新mini主机:性能超越M2
- 【时快讯】403秒!中国"人造太阳"又创世界纪录:领先世界5年
- 环球微动态丨中国巡天太空望远镜明年底发射 将参与近地小行星防御撞击任务
- 高中语文小说情节的作用_高中语文小说的情节题的答题方法 题型
- 全球看热讯:可以攒钱了!任天堂Switch 2最快年底发布
- 实时:14年老牌网站 音悦台官宣回归后向EXO、坤音道歉:欠债一定还
- 当前快播:《塞尔达传说:王国之泪》实机中黑皮女子是谁:海利亚女神附身塞尔达?
- 今日精选:亚马逊加入战局:推出大语言模型“泰坦”为客户提供便宜芯片
- 【全球快播报】藏族女子出嫁带硬核嫁妆走红 价值百万只是一部分:男方根本不用巨额彩礼
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
即时:Java + Jpcap实现监控 IP包流量
Java + Jpcap实现监控 IP包流量
说明:本设计是计算机网络课程的课设,因为代码是提前实现的,本博客于后期补上,又因为代码没写注释自己也看不懂了,所以,仅供参考,就当提供一种实现方式。
(相关资料图)
文中提供的《Jpcap中文API文档》来源于网络,本文仅用于学习交流,如有侵权,可联系我进行删除。
效果图:
1)课程设计要求
1.1 课程设计目的
通过本实课程设计,有助于理解 IP包的格式和加深对 IP 协议的理解。
1.2 课程设计要求
编制程序,监控网络,捕获一段时间内网络上的 IP 数据包,按 IP 数据包的源地址统计出该源地址在该时间段内发出的 IP 包的个数,将其写人日志文件中或用图形表示出来(建议用图形表示出统计结果)。
1.3 程序的具体要求如下
用命令行运行: IPStatistic time logfile
其中, IPStatistic 是程序名; time 是设定的统计时间间隔(单位为分钟,比如,2表示2分钟); logfile 表示统计结果写人的日志文件名(若用图形表示统计结果则可以不选这个参数)。
2)编码前的准备
2.1 技术点
后端:springboot,Jpcap
前端:vue2,ECharts
说明:Jpcap是一个能够捕获、发送网络数据包的java类库包。
2.2 环境搭建
2.2.1 事先说明和下载链接
ps:网上大部分都是
Jpcap
+winpcap
,但是winpcap
太老了,大概率在Windows10和Windows11上会出问题,当时也踩了不少坑,这里推荐使用npcap
winocap网址:https://www.winpcap.org/
Npcap网址:https://npcap.com/
从图中可以看出,winocap已经不再支持,推荐使用npcap
进入Npcap官网下载即可
2.2.2 资源下载
链接:https://pan.baidu.com/s/1y6u-V-FPwOgIxC9ZoAD7yg提取码:1111
内容:
- Jpcap中文API文档
- npcap-1.72.exe
- Jpcap.dll
- jpcap.jar
- network_vue(前端代码,需要自己装包:
npm install
) - network_course_design(Java代码)
2.2.3安装
重点1、3、4步
Npcap.exe正常进行安装即可
创建一个普通springboot项目
在项目中导入
Jpcap.jar
包
将
Jpcap.dll
放到JDK安装路径下的 /jre/bin 目录下(我这里好像没有放也可以运行,可以试一下)前端就是一个普普通通的VUE+ECharts项目
3)编码
重要提示:当时为了赶工,其中的逻辑很有问题,现在的评价就一个字,烂,非常烂!!!看看关键实现就行。
这里推荐看这篇博客,写的很好,里面对重要字段进行了说明:https://www.cnblogs.com/shy-huiying/p/5636274.html
3.1 后端实现
3.1.1 获得本机所有网卡接口信息
Jpcap提供了方法JpcapCaptor.getDeviceList()
完成这个任务,该方法返回一组NetworkInterface对象。
NetworkInterface[] devices = JpcapCaptor.getDeviceList();
/*** 这里是controller层 * 获得所有网卡接口 * @return List */@RequestMapping("/info")public Object getNetworkCard(){ // 获取网络接口列表,返回所有的网络设备数组; NetworkInterface[] devices = JpcapCaptor.getDeviceList(); if (devices.length == 0) { return "无网卡信息"; }else{ List netList = new ArrayList<>(); int index = 0; for (NetworkInterface n : devices) { //NetworkCardPojo是自己编写的实体类,包含网卡接口索引和网卡接口名两个属性 NetworkCardPojo networkCardPojo = new NetworkCardPojo(); networkCardPojo.setIndex(index++); networkCardPojo.setDescription(n.description); //networkCardPojo.setNetworkInterface(n); netList.add(networkCardPojo); } return netList; }}
public class NetworkCardPojo { private Integer index; private String description; //private NetworkInterface NetworkInterface;}
返回到前端的数据:
3.1.2 得到指定网卡的具体信息
- NetworkInterface[] devices = JpcapCaptor.getDeviceList();得到多有网卡信息
- devices[index].addresses;根据前端传入的网卡接口索引得到指定网卡接口的信息。
/** * 这里是controller层 * 打印选择网卡的IP地址和子网掩码; * @param index * @return */ @RequestMapping("/local") public LocalParameterPojo getLocalParameter(@ProbeParam("index") Integer index){ NetworkInterface[] devices = JpcapCaptor.getDeviceList(); //根据传入的网卡索引获取该网卡接口所属的IP地址 NetworkInterfaceAddress[] device = devices[index].addresses; //LocalParameterPojo是自己编写的实体类,包含本机IP地址、子网掩码、网络连接类型 LocalParameterPojo local = new LocalParameterPojo(); if (device.length>0){ local.setIpv4(device[0].address); local.setSubnetMask(device[0].subnet); local.setNetType(devices[0].datalink_description); }else { local.setNetType("该网卡接口不可用,请尝试切换其他网卡接口!"); } return local; }
LocalParameterPojo实体类,注意部分字段是InetAddress
类型
public class LocalParameterPojo { private InetAddress ipv4; //本机IP地址 private InetAddress SubnetMask; //子网掩码 private String netType; //网络连接类型}
3.1.3 监控ip包数据
因为一个ip地址会发送多个ip包,这里主要是将ip包进行分组统计:
IP地址--累计IP包数量--累计IP包大小
这里写的不好,有些问题,甚至问题很大,后面想到有更好的解决方法,但是没有尝试过,就不写了
/** * 这里是controller层 * 开启监控ip包流量监控 * @param index * @return */ @RequestMapping("/start") public List startGetPacket(@ProbeParam("index") Integer index){ targetParameter.startThread(index); //根据Ip地址分组 Map mapAll = new HashMap<>(); System.out.println("ip count:"+targetParameter.getTargetMap().size()); for (int i=0;i targetList = new ArrayList<>(); for (Map.Entry map:mapAll.entrySet()){ TargetParameterPojo targetPojo = new TargetParameterPojo(); targetPojo.setSourceIp(map.getKey()); targetPojo.setSize(map.getValue().getSize()); targetPojo.setCount(map.getValue().getCount()); targetList.add(targetPojo); } return targetList; } /** * 关闭监控ip包流量 * @return */ @RequestMapping("/stop") public int stopsGetPacket(){ int flag = targetParameter.getTargetMap().size(); if(flag>1){ targetParameter.stopThread(); return 1; }else { return 0; } }
service层
@Servicepublic class TargetParameter implements Runnable{ //数据统计要用到的list private static List
Pojo:
public class TargetParameterPojo { private InetAddress sourceIp; private Integer count; private Integer size;}
public class IpGroup { private Integer size; private Integer count;}
3.1.4 目录结构
3.2 前端实现
前端实现很简单,主要是数据渲染,这里说一下我的思路:
- 设定一个计时器,每隔1秒钟就请求一次数据,从而进行数据更新(axios实现)
- 可根据需要对数据进行排序和截取,比如截取前20条数据进行排序(数据条数太多会造成图形不美观)
- 优化:对开启和关闭按钮进行控制,防止重复请求和重复关闭
4)END
资源下载
链接:https://pan.baidu.com/s/1y6u-V-FPwOgIxC9ZoAD7yg提取码:1111
内容:
- Jpcap中文API文档
- npcap-1.72.exe
- Jpcap.dll
- jpcap.jar
- network_vue(前端代码,需要自己装包:
npm install
) - network_course_design(Java代码)
重要:请勿学习如上代码的写法,那时候vue正在学,还行学完,代码冗余严重。
本博客仅仅提供解决方法!欢迎讨论,感谢批评指正。
关键词:
天天滚动:4.14训练解题报告
即时:Java + Jpcap实现监控 IP包流量
微头条丨MAUI之Android记录设备号+动态授权
当前焦点!RTX 4070显卡首发驱动531.61发布:4款游戏优化、修复黑屏崩溃
今日观点!南京动物园回应网红猴被欺负困在水中:没有霸凌 会游泳
欧洲探测器启程奔赴木星
【天天新要闻】内部类
当前热讯:c++打卡第五天
ChatGPT如何做投资?
全球今热点:docker_day04:Dockerfile docker私有仓库 dockercompose介绍 dockercompose部署 一件部署路飞项
全球关注:【金融街发布】证监会:取消期货从业资格管理 强化期货从业人员的事中事后监管
世界速讯:20万元买特斯拉?陶琳甩出5张图:中国价格全球最低
天天速看:高通垄断全球基带!中国紫光展锐排第4:2G/3G/4G/5G都很难
环球热议:仙履奇缘3中文版央视网 仙履奇缘3国语版免费
世界速讯:day01-项目介绍与环境搭建
全球快资讯:美光被审查 国产存储芯片崛起的机会来了?
1L体积塞进电源!联想推出小新mini主机:性能超越M2
【时快讯】403秒!中国"人造太阳"又创世界纪录:领先世界5年
环球微动态丨中国巡天太空望远镜明年底发射 将参与近地小行星防御撞击任务
全球讯息:方向导数
高中语文小说情节的作用_高中语文小说的情节题的答题方法 题型
环球快资讯:旺——消费信心加速回归
全球看热讯:可以攒钱了!任天堂Switch 2最快年底发布
实时:14年老牌网站 音悦台官宣回归后向EXO、坤音道歉:欠债一定还
当前快播:《塞尔达传说:王国之泪》实机中黑皮女子是谁:海利亚女神附身塞尔达?
今日精选:亚马逊加入战局:推出大语言模型“泰坦”为客户提供便宜芯片
【全球快播报】藏族女子出嫁带硬核嫁妆走红 价值百万只是一部分:男方根本不用巨额彩礼
今日播报!Nvidia Tensor Core-MMA PTX编程入门
中诚信大湾区信用债券指数系列正式发布
上榜门槛全线上升!2023年一季度粤港澳湾区房企销售榜发布
当前聚焦:通用官宣放弃苹果CarPlay 车企车机自主化势在必行?
等等党措手不及!内存、SSD现货价已开始反弹:三星/美光疯狂减产奏效了
腾讯回应工信部最新要求:微信QQ故障已批评和处罚相关负责人
全球热消息:员工用指纹膜帮同事打卡被开除 不服起诉 法院:不诚信 公司合法解除
天天微动态丨干掉车顶大鼓包!禾赛科技发布舱内激光雷达:高度仅25mm
MySQL学习笔记-索引
如何通过Java程序合并Word文档
观焦点:使用appuploader工具发布证书和描述性文件教程
Vue之 vue-router
记录-Vue.js模板编译过程揭秘:从模板字符串到渲染函数
男子当着7岁女孩面刺56刀杀死前女友:已执行死刑,一审时曾被判死缓
当前讯息:七彩虹五大RTX 4070开卖:水神/火神5699元!神秘新卡加量不加价
号称“不泄密” 微信键盘Windows版上线:不支持Win7
4799元的RTX 4070显卡上市 厂商不急于增产:库存还没完 不想降价
碎片化一地鸡毛!安卓14推送:安卓13用户量仍少的可怜
全球动态:微信功能异常大量用户中招!工信部指导腾讯:重要业务安全稳定
axiom——一款基于云的分布式网络安全扫描工具框架
低代码起势,程序员闷头开发的日子结束了
世界观速讯丨美原油交易策略:油价受阻于200日均线,关注IEA月报
焦点速看:恒生指数14日收涨0.46% 有色金属行业领涨
AITO问界M5智驾版将亮相上海国际车展 余承东:双天花板级体验
世界看热讯:中国药卖给美国人有多难
12元在家看国产科幻大片!《流浪地球2》全网上线:爱优腾会员不免费
当前通讯!7年了!AMD CUDA杀手ROCm终于登陆Windows、支持游戏显卡
俄罗斯发力自主OS系统 无奈碎片化:Linux就有19种
无极县政府网 无极县政府
实时焦点:用 Go 剑指 Offer 31. 栈的压入、弹出序列 (辅助栈)
企业内部培训网站为例,探索云上成本优化
世界新资讯:【财经分析】房企融资边际回暖 结构分化背景下择券仍需审慎
当前通讯!收评:沪指涨0.32%创年内收盘新高 半导体行业掀涨停潮
速读:全国性能最强!腾讯发布高性能算力集群:专为AI大模型训练准备
10碟充氦!希捷首款22TB机械硬盘发布:价格给力
水花消失术再现!全红婵、陈芋汐夺得2023跳水世界杯首金
天天消息!仅重126g!阿里云推出无影云电脑“魔方AS05”:7个全尺寸接口
每日视讯:2450CVIA刷新亮度天花板!当贝X5旗舰投影仪图赏
武磊谈补发2021中国金球奖:荣誉将激励我为中国足球做更多贡献
天天新动态:Huffman实现
即时:《安富莱嵌入式周报》第309期:开源脑机接口套件,三相多电平逆变器,开源电位仪,单片机并行计算,蓝牙市场分析报告,AI密码破解,nRF54H2发布,Z-W
全球微动态丨python 之 session鉴权的处理
【世界播资讯】git中 commit 和 pull 的先后顺序问题会产生多余的merge记录
全球微资讯!#POWERBI 度量值动态格式字符串,利用动态格式,实现百分数智能缩位(powerbi4月重磅更新功能)
高亮度+顶级芯 旗舰更进一步!当贝X5激光投影仪评测:2450CVIA带来震撼视觉体验
焦点速递!免费、不用注册、支持中文!ChatGPT最强竞品爆火:一手实测体验在此
快报:国产FPS《边境》发布之路坎坷:服务器出现紧急BUG
五一火车票明日开售:五一假期连休5天
世界新动态:徕卡味儿十足!小米13 Ultra摄影套装亮相:手机秒变相机
山东省高级人民法院电话簿(山东省高级人民法院电话)
当前报道:全面解析反欺诈(羊毛盾)API,助你识别各类欺诈风险
天天实时:T-SQL基础教程Day2
世界热文:DXO拍照得分全球第一!OPPO Find X6 Pro卖疯 销量同比增长129%
世界快资讯丨失业大军涌入外卖 骑手收入腰斩:拼了一天赚400 却被罚1000
上亿广场里排队20分钟等餐?为了这一幕,新市府已经等了三年
.NET7使用HttpClient实现查询天气预报接口
天天亮点!大二男生靠打工奖学金穷游37城:没问家里要过1分钱
焦点热门:准备好钱包 比亚迪百万豪车仰望U8四天后开售:超跑U9一同亮相
Redmi Note 12 Turbo首销过后还在狂卖!卢伟冰都没想到
变化极大的iOS 17要来了!苹果内测iOS 16.6系统:或为绝唱更新
今年五一档杀疯了 16部国产大片扎堆:好莱坞大片中国市场遇冷 不符合国人审美
世界看热讯:签约!年产45万吨,林州林钢将建亚洲单体最大铸管生产车间
世界时讯:SpringBoot 如何保证接口安全?老鸟们都是这么玩的
全面数字化时代,国有大型银行如何走好金融创新之路?
速讯:PHP 备忘清单_开发速查表分享
今日热议:如何快速开发软件?这篇文章说明白了
世界微速讯:2023年百大影响力人物:马斯克、TikTok周受资等入榜
公司回应员工未及时回复收到被辞退:顶撞领导 不服从管理
【全球时快讯】量旋科技进军超导量子计算!三大新品、软硬件全流程搞定
世界最资讯丨3年前老机型没被抛弃!一加8系列官宣适配ColorOS 13.1
男子机动车道上骑鸵鸟还拍视频炫耀:系养殖基地训练师、已被处理
世界百事通!16岁女孩骑摩托载21岁女伴不幸遇难,生前网友曾劝“危险”被怼
ntuser是什么文件?ntuser文件可以删除吗?