简单网络嗅探器编写--------java

本文介绍了如何使用Java和jpcap库来创建一个网络嗅探器。该嗅探器具备选择监听网卡、显示网络层和传输层头信息、设置过滤规则等功能。通过JpcapCaptor获取网卡信息并进行抓包,然后解析和显示捕获的TCP/IP数据包,同时提供暂停抓包、数量统计和过滤规则设定,以及将数据保存到本地的功能。
摘要由CSDN通过智能技术生成

功能设计:

在设计之初,本设计被期望实现下面功能:

①有一个对用户友好的操作界面,使用户对软件上手快和操作简单;

②能对网卡进行选择,选择用户自己需要进行监听抓包的网卡;

③能够侦听所有进出本主机的数据包,完整显示数据包网络层和传输层的头信息。比如,对IP头而言,需要显示版本、头长度、服务类型、数据包长度、标识、DF/MF标志、段内偏移、生存期、协议类型、源目的IP地址、选项内容,并且要求显示数据的实际含义;

④能够设置过滤规则,比如说侦听来源于指定IP地址的数据;

⑤显示接受到的TCP数据包的全部实际内容,并且要考虑一个TCP包划分为多个IP包传输的情况;

⑥功能验证手段,比如说,在运行网络嗅探器的同时,执行标准的Ping、Telnet和浏览网页等操作,检查网络嗅探器能否返回预期的结果。

具体实现:

1.选择网卡进行抓包:

(1)通过JpcapCaptor类的getDevices()函数获取主机的网卡信息:

public static NetworkInterface[] getDevices() {

           NetworkInterface[] devices = JpcapCaptor.getDeviceList();

               return devices;

}

(2)将每个网卡添加到“网卡”菜单的菜单项中:

menuFile1 = new JMenu(" 网卡  ");

               NetworkInterface[] devices = new NetworkCard().getDevices();

               item = new JMenuItem[devices.length];

               for (int i = 0; i < devices.length; i++) {

                      item[i] = new JMenuItem(i + ": " + devices[i].name + "("

                                     + devices[i].description  + ")");

                      menuFile1.add(item[i]);

(3)对每个菜单项添加指定的动作侦听器,进行监听,当用户点击此处时将该网卡设为抓包网卡,并打开线程,使用JpcapCaptor.openDevice()打开网络接口,用captor.getPacket()进行抓包:

①添加动作侦听器:

item[i].addActionListener(

                      new CardActionListener(devices[i]));

②动作响应:

public void actionPerformed(ActionEvent e) {

       allpackets.setDev

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值