Java实现简单的个人网络嗅探器

Java实现简单的个⼈⽹络嗅探器
⼀、实验题⽬
简单的个⼈⽹络嗅探器
⼆、实验⽬的
加深对 TCP/IP 协议的理解
三、实验环境
环境:Windows 10+Myeclipse+Jdk1.6+Wincap+Jpcap
语⾔:Java
四. 关于Jpcap
。。。做的都差不多了发现Jnetpcap简直好⽤太多,但是还要准备考试。。没时间改了。。对于数据内容的解码使⽤gbk解码。。会有很多乱码
1.我们为什么需要Jpcap?
Java的包中,给出了传输层协议 TCP和UDP有关的API,⽤户只能操作传输层数据,要想直接操作⽹络层{⽐如⾃⼰写传输层数据报(⾃⼰写传输层包头),或者⾃⼰写好IP数据包向⽹络中发}则是⽆能为⼒的。 ⽽JPCAP扩展包弥补了这⼀点,使我们可以⽀持从⽹卡中接收IP数据包,或者向⽹卡中发送IP数据包。
2.什么是Jpcap?Jpcap的⼯作原理是什么?
参与式教学Jpcap实际上并⾮⼀个真正去实现对数据链路层的控制,⽽是⼀个中间件,JPCAP调⽤wincap/libpcap,⽽给JAVA语⾔提供⼀个公共的接⼝,从⽽实现了平台⽆关性。
3.安装配置Jpcap:
4.别忘了安装Wincap:
五、实验内容
1.实现的功能
(1)实现了 Sniffer 的基本功能,监测⽹络性能及使⽤情况
(2)考虑⼀台机器上多张⽹卡的情况,指定需要侦听的⽹卡
(3)侦听所有进出本主机的数据包,解析显⽰数据包( ICMP 、 IP 、 TCP 、 UDP 等)各个字段及数据内容
(4)侦听来源于指定 IP 地址的数据包,侦听指定⽬的 IP 地址的数据包
(5)获取数据包的详细信息,⾸部的各字段,包括源IP,⽬的IP,源端⼝,⽬的端⼝,源MAC,⽬的MAC等,将数据内容通过gbk⽅式解码
(4)侦听指定协议的数据包
(5)侦听含有指定数据的数据报包
(5)保存选中的包到本地
2.设计思路
(1)本软件使⽤的主要模块和功能:
内蒙古 大学a. 抓包模块
b. 数据包分析模块
c. 线程控制模块
通田阁萝
(2)模块间调⽤关系
3.具体实现过程
(1)启动程序,展⽰⽤户界⾯
(2)获取当前⽹卡列表,⽤户指定要操作的⽹卡
(3)获取当前过滤规则,可通过协议,源IP,⽬的IP,关键字进⾏过滤,也可为空(4)展⽰数据包基本信息
(5)根据⽤户点击的内容,对该包进⾏解析,显⽰详细内容
优酷收购土豆4.模块功能清单
Main.java 程序⼊⼝
MyInterface.java 程序界⾯类
NetworkCard.java ⽹卡类
|__ getDevices() 获取⽹卡列表
PacketCapture.java 抓包类
|-- run() 重写多线程的run⽅法,开启抓包线程
|-- showTable() 将抓到包的信息添加到列表
|-- getpacketlist() 其他类通过此⽅法获取Packet的列表
|-- TestFilter() 设置过滤规则
|__ getObj() 将抓到的包的基本信息显⽰在列表上,返回信息的String[]形式PacketAnalyze.java 解析包类赣榆县实验中学
|-- packetClass() 根据包的类型选择不同的⽅法进⾏解析
|-- IPanalyze() 解析IP数据包
|-- ICMPanalyze() 解析ICMP数据包
|-- TCPanalyze() 解析TCP数据包
|__UDPanalyze() 解析UDP数据包
5.运⾏截图
坡度板六、源代码

本文发布于:2024-09-21 17:28:39,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/14484.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据包   数据   指定   侦听   模块   内容   传输层   信息
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议