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

📄 captor.java

📁 利用第三方API JPCAP进行开发出来的网络抓包程序
💻 JAVA
字号:
package cn.myownlife.www;

import java.io.IOException;
import jpcap.JpcapCaptor;
import jpcap.NetworkInterface;
import jpcap.PacketReceiver;
import jpcap.packet.Packet;
 
/*利用多线程实现抓包,每次抓一个*/
public class Captor {
	static int len = 1024;//抓到的最大包长
	static JpcapCaptor cap=null;
	static NetworkInterface[] devices;//驱动
	JpcapCaptor jpcap = null;
	Jmain frame;
	
	/**/
	public void setJFrame(Jmain frame){
		this.frame=frame;
	}
	
	/*打开适配器,开始抓包*/
	public void capturePacketsFromDevice() throws IOException {
		if(jpcap!=null)jpcap.close();
		devices = JpcapCaptor.getDeviceList();
		if(devices != null){
		}
		jpcap = JpcapCaptor.openDevice(devices[0], len, true, 1000);
		if (jpcap != null) {
			startCaptureThread();
		}
	}
	
	private Thread captureThread;
	
	/*开始抓包*/
	private void startCaptureThread(){
		if(captureThread != null)
		return;
		captureThread = new Thread(new Runnable(){
		public void run(){
				while(captureThread != null){
					jpcap.processPacket(1, handler);
				}
			}
		});
		captureThread.setPriority(Thread.MIN_PRIORITY);
		captureThread.start();
	}
	
	/*设置captureThread为NULL*/
	void stopcaptureThread(){
		captureThread = null;
	}
	
	/*停止抓包*/
	public void stopCapture(){
		System.out.println(2);
		stopcaptureThread();
	}
	
	/*调用包的出来函数*/
	private PacketReceiver handler=new PacketReceiver(){
		public void receivePacket(Packet packet) {
			frame.dealPacket(packet);
		}
	};
}

⌨️ 快捷键说明

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