Java网卡监控
来源:互联网 发布:网络玄幻小说经典语录 编辑:程序博客网 时间:2024/06/01 08:16
1.到网上下载JPcap,下载地址是:http://netresearch.ics.uci.edu/kfujii/jpcap/doc/index.html
2.由于JPcap运行时依赖WinCap的类库,所以,也必须在本机下载安装WinCap,下载地址是:http://www.winpcap.org
3.配置JPcap的路径:把Jpcap文件夹下lib文件夹里的JPcap.dll文件复制到你机器JDK文件夹下jre下的bin目录中,(例如:C:\Program Files\Java\jdk17.0_10\jre\bin下)然后把JPcap文件夹下lib文件夹里的jpcap.jar复制到你机器JDk文件夹下jre-->lib--->ext目录下(例如:C:\Program Files\Java\jdk1.7.0_10\jre\lib\ext)
4、配置elicpse中jre环境,选择window-->preference-->java--->installed jres,然后在installed jres中选择jpcap.jar加入进来。
5、编写测试代码
package com.test.util;
import java.util.ArrayList;
import java.util.List;
import jpcap.JpcapCaptor;
import jpcap.NetworkInterface;
import jpcap.packet.Packet;
import jpcap.packet.TCPPacket;
import jpcap.packet.UDPPacket;
public class TestJpcap {
public static void main(String[] args) {
try {
/*-------------第一步绑定网络设备--------------------*/
NetworkInterface[] devices = JpcapCaptor.getDeviceList(); // 返回一个网络设备列表
int caplen = 600;
boolean promiscCheck = false;
// caplen限制每一次收到一个数据包,只提取该数据包中前多少字节
// Promisc:设置是否混杂模式。处于混杂模式将接收所有数据包,若之后又调用了包过滤函数setFilter()将不起任何作用
// 500这个参数主要用于processPacket()方法,指定超时的时间
final JpcapCaptor jpcap1 = JpcapCaptor.openDevice(devices[2],
caplen, promiscCheck, 1000);
/*----------------第二步抓包---------------*/
int i = 0;
while (i < 1000000) {
Packet packet = jpcap1.getPacket();
if (packet instanceof TCPPacket) {
TCPPacket tcpPacket = (TCPPacket) packet;
// 定义为80号端口,确定为HTTP数据包
if (tcpPacket.src_port == 1521
|| tcpPacket.dst_port == 1521) {
i++;
System.out.println("本机地址:" + tcpPacket.src_ip);
System.out.println("目标地址:" + tcpPacket.dst_ip);
List<Byte> tmps=new ArrayList<Byte>();
byte a;
for(int l=0; l<tcpPacket.data.length;l++){
a=tcpPacket.data[l];
if(a!=0 && a!=1 && a!=2 && a!=3 && a!=4 && a!=5 && a!=6 && a!=-1 && a!=-2 ){
tmps.add(a);
}
}
byte[] tmpop=new byte[tmps.size()];
for(int l=0; l<tmps.size();l++){
tmpop[l]=tmps.get(l);
System.out.println(tmpop[l]);
}
System.out .println(new String(tmpop, "gb2312"));
}else if (tcpPacket.src_port == 8080
|| tcpPacket.dst_port == 8080) {
System.out.println("本机地址2:" + tcpPacket.src_ip);
System.out.println("目标地址2:" + tcpPacket.dst_ip);
byte[] tmpStr=tcpPacket.data;
System.out .println(new String(tmpStr, "gb2312"));
}
}else if (packet instanceof UDPPacket) {
UDPPacket udpPacket = (UDPPacket) packet;
//System.out .println(new String(udpPacket.data, "gb2312"));
}
}
} catch (Exception ef) {
System.out.println("显示网络接口数据失败: " + ef);
}
}
}
- Java网卡监控
- iftop 监控 网卡流量
- 监控网卡实时流量
- 网卡流量监控脚本
- Nagios 网卡流量监控
- 监控所有网卡流量
- Nagios 网卡流量监控
- 网卡流量监控方法
- shell监控网卡流量
- nagios监控网卡流量
- 监控网卡流量的命令
- iftop监控网卡实时流量
- linux下监控网卡流量
- cacti监控其他服务器网卡
- 动态监控网卡流量异常
- Linux 监控每秒网卡流量
- linux网卡流量监控iftop
- iftop 监控网卡实时流量
- zoj1505
- 欢迎使用CSDN-markdown编辑器
- C# 后台生成Word表单
- 怎么调用函数求ln x?
- 分享一下在centos上搭建ngrok服务器的过程吧!
- Java网卡监控
- Linux终端常用快捷键 必看!
- Android Window纪要
- OnPaint()闪烁问题
- BZOJ 1025 分组背包 置换
- Java HttpURLConnection和HTTPClient的比较
- QComboBox美化
- 优雅的实现多类型列表的Adapter
- 【软件开发流程-1】可行性研究报告