IP流量包分析

IP数据包的流量统计(JAVA语言) 如果不显示图片,或者出现排版错误,抽风,崩坏,节操丢失等一系列不正常情况,请点击下面链接观看,点我 IP数据包的流量统计(JAVA语言) 要求:编制程序,监控网络,捕获一段时间内网络上的IP数据包,按数据包的源地址统计出该源地址在该时间段发出的IP包的个数,将其写入日志文件中或者用图形表示出来. 课程设计,感觉挺有意思的.就想做出来,但自己虽然学过一点JAVA语言但是有些 阅读详情

IP包流量分析程序
编制程序,监控网络,捕获一段时间内网络上的IP数据包,按IP数据包的源地址和目的地址统计出该源地址在该时间段内发出的IP包的个数,将其统计结果在控制台现实出来。

程序的具体要求如下:

获取网络设备列表。

选择网卡并打开。

当捕获数据包时,可能需要设置过滤器。

捕获数据包或者发送数据包。

统计数据的流量。

首先要进行jpcap包的安装才可以运行以下代码
jpcap的环境配置教程:http://blog.youkuaiyun.com/zhangjianmin317/article/details/7376364
64位jpcap包下载地址:http://pan.baidu.com/s/1hr939mW
32位jpcap包下载地址:http://pan.baidu.com/s/1miK1dK8
配置好jpcap后,即可编译运行TestJpcap.java文件

源代码(一共两个java文件,注意)
程序名:TestJpcap.java

import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;

import jpcap.JpcapCaptor;
import jpcap.NetworkInterface;
import jpcap.NetworkInterfaceAddress;
import jpcap.packet.Packet;

public class TestJpcap {
public static void main(String[] args) throws IOException {
Scanner console = new Scanner(System.in);
getDevices();//显示PC机上可用的网卡的信息
System.out.println(“请输入网卡号<0-2>”);
int num = console.nextInt();//获取用户要打开的网卡号
System.out.println(“请输入抓包时间(分钟)”);
int minuets = console.nextInt();//获取用户抓包时间
oneByOneReceiver(num, minuets);//调用抓包方法

}

// 获取网络接口列表
public static void getDevices() {
    NetworkInterface[] devices = JpcapCaptor.getDeviceList();
    for (int i = 0; i < devices.length; i++) {
        System.out.println(i + ": " + devices[i].name + "("
                + devices[i].description + ")");
        System.out.println(" datalink: " + devices[i].datalink_name + "("
                + devices[i].datalink_description + ")");
        System.out.print(" MAC address:");
        for (byte b : devices[i].mac_address)
            System.out.print(Integer.toHexString(b & 0xff) + ":");
        System.out.println();
        for (NetworkInterfaceAddress a : devices[i].addresses)
            System.out.println(" address:" + a.address + " " + a.subnet
                    + " " + a.broadcast);
    }
}

// 使用逐个捕获方法, 从网络接口捕获数据包
public static void oneByOneReceiver(int index, int time) throws IOException {
    NetworkInterface[] devices = JpcapCaptor.getDeviceList();
    JpcapCaptor captor = JpcapCaptor.openDevice(devices[index], 65535,
            false, 20);
    PrintWriter pw = new PrintWriter(new FileWriter(new File("packets.txt")));
    // 设置过滤器
    captor.setFilter("ip", true);
    int counter = 0;
    Packet packet;
    long startTime = System.currentTimeMillis();
    while (startTime + time * 60 * 10 >= System.currentTimeMillis()) {
        packet = captor.getPacket();
        System.out.println(packet);
        if (packet != null) {
            String ips = packet.toString().split("\\s+")[1];
            pw.write(ips);
            pw.println();
            counter++;
        }
    }
    pw.close();
    CounterPackets cp = new CounterPackets();
    cp.readPackets();
    cp.print();
    System.out.println("PacketNumbers:" + counter);
}

}
程序名: CounterPackets.java

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;

public class CounterPackets {
ArrayList ips;//存放读取文本信息
HashMap<String,Integer> counter;//存放地址和对应的数据包的数量

public CounterPackets() {
    counter = new HashMap<String, Integer>();
}

//从packet.txt.中读取捕获到的IP数据包信息
public void readPackets() throws IOException {
    ips = new ArrayList<String>();

BufferedReader br = new BufferedReader(new FileReader(“packets.txt”));
while (br.read() != -1) {
ips.add(br.readLine());
}
counter();
}

//统计流量
public void counter() {
    for (int i = 0; i < ips.size(); i++) {
        String[] result = getIps(ips.get(i));
        String index = result[0] + " " + result[1];
        setNumber(index);
    }
}
//获取源地址和目的地址
public String[] getIps (String ips) {
    StringBuffer sb = new StringBuffer(ips);
    for (int i = 0; i < ips.length(); i++) {
        if (ips.charAt(i) == '/' || ips.charAt(i) == '>' || ips.charAt(i) == '-') {
            sb.replace(i, i + 1, " ");
        }
    }
    ips = sb.toString().trim();
    return ips.split("\\s+");
}

//数目叠加
public void setNumber(String index) {
    if (counter.containsKey(index)) {
        int value = counter.get(index);
        counter.put(index,  value+1);
    } else {
        counter.put(index, 1);
    }
}
//将结果打印到控制台
public void print() {
System.out.println("源地址" + "       " + "目的地址" + "     " + PacketNumber);
    Iterator it = counter.keySet().iterator();
    while (it.hasNext()) {
        String index = (String)it.next();
        String[] ips = index.split("\\s+");
        String srcIp = String.format("%-6s", ips[0]);
        String dstIp = ips[1];
        int number = counter.get(index);
        System.out.println(srcIp + "        " + dstIp + "          " + number);
    }
}

}
运行后输入
首先输入你的网卡号(输入数字(0-2))
在这我输入1(1是无线网卡号)

输入抓包时间(就是在一段时间内你访问了哪些目的地址)
这里我输入2

作者:weixin_34248258
来源:优快云
原文:https://blog.youkuaiyun.com/weixin_34248258/article/details/87757742
版权声明:本文为博主原创文章,转载请附上博文链接!

基于JAVA的IP流量包分析工具实战项目 IP流量包分析是指通过对网络中传输的IP数据包进行捕获、解析和统计,以洞察通信行为的技术手段。每个IP数据包包含包头与载荷,其中包头携带源/目的IP地址、协议类型、TTL等关键元数据,是实现路由转发与安全策略的基础。在TCP/IP模型中,IP层位于网络层核心,负责主机间逻辑寻址与数据报传递。Java凭借跨平台JVM支持、丰富的NIO库及成熟生态(如jNetPcap),适合构建可扩展的流量分析系统。其强类型语言特性有助于精准建模协议字段,结合多线程能力可实现高性能实时处理,为后续模块化开发奠定基础。 阅读详情

相关推荐

IP和UDP包流量监控

编制程序,监控网络,捕获一段时间内网络上的IP数据包,按IP数据包的源地址统计出该源地址在该时间段内发出的IP包个数,将其写入日志文件中或用图形表示出来

PV、UV、IP:网站流量分析的关键指标

在浩瀚的互联网海洋中,PV(Page View,页面浏览量)、UV(Unique Visitor,独立访客数)与IP(Internet Protocol,独立IP访问量)如同灯塔一般,为网站运营者指引着方向,是评估网站健康状况、用户行为及市场渗透力的关键标尺。下面,我们将深入探讨这三个指标的内涵、区别及其在网站运营中的核心价值。

孔乙己大叔的博客 1838

IP数据包流量监控

IP数据包流量监控 基于winpcap 内置使用手册 入门级源代码学习

计算机网络吴功宜知识点,《计算机网络-吴功宜》涉及题目

《计算机网络-吴功宜》涉及题目 (8页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!7.9 积分计算机网络课程设计 吴功宜《计算机网络课程设计》题目有哪些1. 发送和接收TCP数据包TCP是一种面向连接的、可靠的传输层协议。TCP协议工作在网络层IP协议的基础上。本课程设计的目的是设计一个发送和接收TCP数据包的程序,其功能是填充一个TCP数据包,发送...

weixin_33558072的博客 1028

监控IP数据包流量

用vc++编写的IP数据包流量的监控,使用方法:先自行安装wincap(网上很多),将工程文件exe拖入cmd,即可按照提示监控IP包流量。

百分百SEO快速排名软件 v2.0.rar

百分百SEO快速排名软件一款能够快速提高网站排名的软件,由百分百团队历时3年研发,完全模拟真实用户搜索访问您的网站, 只要你的关键字在百度等搜索引擎的前100位,都将有超大的几率使得自然排名稳步上升!SEO排名有一个重要的指标,就是通过搜索某关键词后,您的网站被点击次数越多,那么越会得到搜索引擎的认可,排名就会越靠前!我们软件通过利用全国各地的电脑,模拟真实的点击您的搜索结果,达到高效、快速、安全的提高关键词排名的目的。

IP地址如何用于流量管理?

可以通过对IP地址的访问权限进行限制,防止未经授权的访问和攻击。同时,通过对异常IP地址的监测和分析,可以发现并阻止网络中的恶意行为和病毒传播。通过对IP地址的流量进行分析,可以了解网络流量的特点、趋势和问题。总之,IP地址作为流量管理的重要工具之一,可以帮助网络管理员更好地了解和控制网络流量。通过对IP地址的识别、限制、分析和优化,可以提高网络的性能、安全性和用户满意度。通过分析IP地址,可以对网络流量进行分类和识别。通过IP地址,我们可以确定哪些流量来自哪些设备,从而对其进行管理和控制。

TTmanghe的博客 562

IP流量包分析程序

包含程序源码 应用程序 语言:C++ 编程软件:Microsoft Visual Studio 2015

流量包取证-大流量分析

题目要求找到黑客攻击ip。

2301_80797059的博客 101

IP包流量分析程序的设计与实现

这是一个JAVA开发的流量分析程序,内附源代码

Linux之GTK系列教程

00、背上行囊1——程序员学习之道 01、背上行囊2——为什么要学习GTK 02、背上行囊3——GUI概述 03、背上行囊4——GTK简介 04、背上行囊5——GTK环境搭建( Linux ) 05、背上行囊6——GTK环境搭建( windows ) 06、踏上旅途1——一个简单的空白窗口 07、踏上旅途2——控件的添加 08、踏上旅途3——布局容器之水平布局 09、踏上旅途

每天积累一点点 2万+

BUU.大流量分析(一)

快速审阅,发现从头都是 183.129.152.140在发动攻击;提取附件,这个文件夹里的流量包不少;

bongbingchen的博客 497

利用Nginx反向代理实现GitLab自定义域名的高效配置

本文详细介绍了如何利用Nginx反向代理实现GitLab自定义域名的高效配置。通过统一域名管理、性能优化和安全加固,提升GitLab的访问效率和安全性。文章包含前期准备、GitLab基础配置、Nginx反向代理设置及常见问题排查,帮助开发者快速完成部署。

weixin_28834169的博客 164

wirehark数据分析与取证misc1.pcap

wiresharekwireshark--misc1.pcap数据包。

Aluxian_的博客 3412

CIC-IDS-2018数据集高效预处理实战:从数据清洗到特征整合

本文详细介绍了CIC-IDS-2018数据集的高效预处理方法,从数据清洗到特征整合的全流程实战。通过内存优化、异常值处理和特征工程等技巧,帮助网络安全研究人员快速处理大规模网络流量数据,提升机器学习模型的训练效率和准确率。特别针对特征数据的预处理提供了实用代码示例和优化建议。

weixin_29274969的博客 502

ST7789P3初始化配置

【代码】ST7789P3初始化配置。

zqq_1314的博客 4153

玄机——某次行业攻防应急响应(带镜像)

今天给大家带来一次攻防实战演练复现的过程。

m0_73812072的博客 2167

Multisim 14.0实战:从零搭建可调幅多波形信号发生器(附仿真文件)

本文详细介绍了如何在Multisim 14.0中从零搭建一个可调幅多波形信号发生器,涵盖方波、三角波和正弦波的生成原理与实现步骤。通过核心电路架构解析、关键参数设计及Multisim实战操作,帮助电子工程学习者和硬件工程师掌握信号发生器的设计与调试技巧,并提供仿真文件供实践验证。

nokia的博客 1073

实战-行业攻防应急响应

实战-行业攻防应急响应 简介: 服务器场景操作系统 Ubuntu 服务器账号密码:root/security123 分析流量包在/home/security/security.pcap 相关jar包在/home/security/ruoyi/ruoyi-admin.jar 应急主机: 192.168.0.211 网关: 192.168.0.1/24 其它傀儡机: 段内 本次环境来自某次行业攻防...

weixin_36491976的博客 341

手把手教你用SAM模型实现精准图像分割:从环境配置到实战应用

本文详细介绍了如何使用Meta推出的Segment Anything Model(SAM)实现精准图像分割,从环境配置到实战应用的全流程。特别针对电商场景中的商品分割需求,提供了硬件配置、模型下载、API使用及优化策略等实用指南,帮助开发者快速掌握这一强大的深度学习工具。

pepsi的博客 1062

VMware虚拟机的安装教程

VMware 虚拟机的备份与恢复是保障数据安全和业务连续性的重要措施。综上所述,VMware 虚拟机的备份与恢复策略有多种选择,企业和用户可以根据实际需求和资源情况选择适合自己的方案,以确保虚拟机数据的安全和业务的连续性。

huanghm88的专栏 2967

龙信杯流量分析

后面一连串的都是连接cont.php,怀疑是连接的webshell,这个问题应该是在问上传这个木马文件时修改了什么参数。常见的有上传图片木马,将图片上传后,bp抓包改content-type,而这题答案就是这个。找到流量包,可以看出符合冰蝎的流量特征(Content-type: Application/x-www-form-urlencoded),所以后面进行aes+base64的解密。因为爆破的原理就是发送大量的爆破报文去尝试破解密码,所以在端点界面中点击packets,使得排序方式为。

m0_75236662的博客 909

在zcu102开发板上使用PetaLinux运行Qt程序

请注意,上述步骤只是一个概述,并且可能需要根据特定的开发环境和要求进行适当的调整。如果你是一个初学者或者对于这些领域不太熟悉,建议在尝试之前阅读相关的文档和教程,或者寻求专业人士的帮助。在"Projects"菜单中,选择"Build & Run"选项,并在"Build"步骤中选择正确的工具链。注意:如果Qt程序依赖于其他库文件,需要将这些库文件一起复制到PetaLinux工程的根文件系统目录中,并在Qt程序中正确地配置库文件路径。如果一切顺利,PetaLinux系统将启动,并自动运行Qt程序。

UhxzCombined的博客 698

杂项题的基本解题思路——4、流量取证技术

流量包文件分析 流量包就是说我向你传递的时候,把你传递过程中的数据抓取下来,保存成一个文件 流量取证技术就是说:题目会给你一个流量包,你要在流量包里面找到相应的一些文件(有时候flag值就藏在流量包的某一个位置) ①wirkshark工具 查看自己的电脑有没有安装wireshark:win+R——》输入wireshark看能不能打开 kaliLinux自带了wireshark 利用wirkshark工具的过滤器功能 常用的过滤命令 1、 过滤IP 如过滤源IP或者目的IP ip.src eq x.x

_Co1a 2187

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

玄机靶场 | 第九章-blueteam 的小心思3

第九章-blueteam 的小心思3详细题解

WayneJH的博客 2776

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

记一次DDoS攻击应急响应实战

在一次正常巡视站点时,发现网站加载漫长,且到最后显示无响应,随后紧急查看该服务器下其他站点,情况均是如此于是快速登陆腾讯云服务器控制台,发现情况如下发现服务器遭到DDoS攻击

Elite的博客 1996

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

上一篇: 平衡二叉树排序树的操作
下一篇: idea创建java工程的步骤
heiyay
博客等级 码龄8年 617粉丝 177原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值