⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 catchp.java

📁 统计网络数据包之后再画出相应的直方图表示
💻 JAVA
字号:
import jpcap.*;
import jpcap.packet.*;

public class CatchP implements PacketReceiver
{    static int count1=0,count2=0;
     static long t1=System.currentTimeMillis();
     static long t2=0;
     static int  perpack_i=0;
     static int  perpack[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
     
	 public void receivePacket(Packet packet)
	 {  if(packet instanceof IPPacket)   //判断是不是IP数据包
	    {   IPPacket ip;
		    ip=(IPPacket)packet;
		    count1++;
		    System.out.print(ip.src_ip.getHostAddress()+"\t"+ip.dst_ip.getHostAddress()+"\t"+ip.protocol+"\t"+ip.length+"\t"+ip.version+"\t"+ip.ident+"\t"+ip.rsv_frag+"\t"+ip.offset+"\t"+ip.hop_limit+"\t"+ip.rsv_tos+"\r\n");
		    t2=System.currentTimeMillis();
		    if(t2>(t1+4000))
	        {   t1=t2;
	            perpack_i++;
	        	perpack[perpack_i]=(count1-count2)/100;     //直观图缩小100倍
	        	count2=count1;
	        }
		}
	 }
	     
	 public static void main(String[] args) throws Exception 
	 {    
		  NetworkInterface[] devices = JpcapCaptor.getDeviceList();    //获得网卡设备的信息
	      System.out.println("以下是捕获的网络数据包 \n");
	      JpcapCaptor jpcap = JpcapCaptor.openDevice(devices[1],65535,true, 20);   //选择有用的网卡,从而来捕获数据包    
	      jpcap.loopPacket(80000, new CatchP());    
	      System.out.println("\n 运行结束::捕获的数据包有: "+count1+"个");
	      DrawPic p=new DrawPic();
	 }
}



    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -