手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

java怎么获取网络的上传速度和下载速度

时间:2024-10-16 13:27:19

1、第一步:下载wincap,jpcap,鉴于不好下载问题,大家可以去网络找,如图:

java怎么获取网络的上传速度和下载速度

2、第二步:解压,里面的wincap.exe直接下一步安装就好。把压缩包里面的jpcap.dll放到jdk的bin目录,如图:

java怎么获取网络的上传速度和下载速度

3、第三步:创建项目,引入压缩包里面jpcap.jar,如图:

java怎么获取网络的上传速度和下载速度

4、第四步:编写代码。创建一个类,并实现PacketReceiver ,代码如下:public class Demo3 implements PacketReceiver { @Override public void receivePacket(Packet packet) { }}

java怎么获取网络的上传速度和下载速度

5、第五步:对Packet进行解析,里面又tcp,udp和其他请求,通过instanceof判断,代码如下:@Overridepublic void receivePacket(Packet packet) { if (packet instanceof jpcap.packet.TCPPacket) { // tcp请求 }else if (packet instanceof jpcap.packet.UDPPacket){ // UDP请求 }else{ // 其他请求比如ping }}

java怎么获取网络的上传速度和下载速度

6、第六步:统计里面的流量,tcp和udp统计后进行总数相加,就是上传下载的流量,代码如下:@Overridepublic void receivePacket(Packet packet) { if (packet instanceof jpcap.packet.TCPPacket) { // tcp请求 TCPPacket tcp = (TCPPacket) packet; System.out.println("TCP源IP地址:"+tcp.src_ip+"目的IP地址:"+tcp.dst_ip +"包长度:"+tcp.len); tcpPacketCount+=tcp.len; }else if (packet instanceof jpcap.packet.UDPPacket){ // UDP请求 UDPPacket udp = (UDPPacket) packet; System.out.println("TCP源IP地址:"+udp.src_ip+"目的IP地址:"+udp.dst_ip +"包长度:"+udp.len); udpPacketCount += udp.len; }else{ // 其他请求比如ping System.out.println("***捕获到非运输层协议的其他包!!!"); } System.out.println("总流量为: "+(tcpPacketCount+udpPacketCount));}

java怎么获取网络的上传速度和下载速度

7、第七步:写main方法进行网卡选择,选择你正在上网的那个网卡,找到对应ipv6地址,然后输入网卡下标,回车就会看到效果,代码如下:public static void main(String[] args) throws Exception { //获得网卡设备列表 NetworkInterface[] devices = JpcapCaptor.getDeviceList(); if (devices.length == 0) { System.out.println("无网卡信息!"); return; } //输出网卡信息 for (int i = 0;i < devices.length;i++) { System.out.println("网卡" + i + "信息:" + devices[i].name); for (NetworkInterfaceAddress address :devices[i].addresses) { System.out.print(address.address + " "); } System.out.println("\n"); } Scanner scan = new Scanner(System.in); System.out.println("请选择您要监听的网卡序号:"); int index = scan.nextInt(); //监听选中的网卡 System.out.println(devices[index].name); JpcapCaptor jpcapCaptor = JpcapCaptor.openDevice(devices[index], 2000, false, 20); jpcapCaptor.loopPacket(-1, new Demo3());}

java怎么获取网络的上传速度和下载速度

8、第八步:全部代码和效果如下:/*** 多多支持,不懂留言,相互学习*/public class Demo3 implements PacketReceiver { private static int tcpPacketCount = 0; private static int udpPacketCount = 0; @Override public void receivePacket(Packet packet) { if (packet instanceof jpcap.packet.TCPPacket) { // tcp请求 TCPPacket tcp = (TCPPacket) packet; System.out.println("TCP源IP地址:"+tcp.src_ip+"目的IP地址:"+tcp.dst_ip +"包长度:"+tcp.len); tcpPacketCount+=tcp.len; }else if (packet instanceof jpcap.packet.UDPPacket){ // UDP请求 UDPPacket udp = (UDPPacket) packet; System.out.println("TCP源IP地址:"+udp.src_ip+"目的IP地址:"+udp.dst_ip +"包长度:"+udp.len); udpPacketCount += udp.len; }else{ // 其他请求比如ping System.out.println("***捕获到非运输层协议的其他包!!!"); } System.out.println("总流量为: "+(tcpPacketCount+udpPacketCount)); } public static void main(String[] args) throws Exception { //获得网卡设备列表 NetworkInterface[] devices = JpcapCaptor.getDeviceList(); if (devices.length == 0) { System.out.println("无网卡信息!"); return; } //输出网卡信息 for (int i = 0;i < devices.length;i++) { System.out.println("网卡" + i + "信息:" + devices[i].name); for (NetworkInterfaceAddress address :devices[i].addresses) { System.out.print(address.address + " "); } System.out.println("\n"); } Scanner scan = new Scanner(System.in); System.out.println("请选择您要监听的网卡序号:"); int index = scan.nextInt(); //监听选中的网卡 System.out.println(devices[index].name); JpcapCaptor jpcapCaptor = JpcapCaptor.openDevice(devices[index], 2000, false, 20); jpcapCaptor.loopPacket(-1, new Demo3()); }}

java怎么获取网络的上传速度和下载速度

9、第九步:以上代码纯手打,希望可以帮到大家

© 手抄报圈