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

📄 httpanalyzer.java

📁 本程序用来实现对网络流量的获取及分析功能。可以分离出tcp/udp报文,http协议
💻 JAVA
字号:
package jdumper.analyzer;
import jpcap.packet.*;
import java.util.*;
import java.io.*;

public class HTTPAnalyzer extends JDPacketAnalyzer
{
	private static final String[] valueNames={
		"Method",
		"Header"
	};
	String method;
	Vector headers=new Vector();
	
	public HTTPAnalyzer(){
		layer=APPLICATION_LAYER;
	}
	
	public boolean isAnalyzable(Packet p){
		if(p instanceof TCPPacket &&
		   (((TCPPacket)p).src_port==80 || ((TCPPacket)p).dst_port==80))
			return true;
		else return false;
	}
	
	public String getProtocolName(){
		return "HTTP";
	}
	
	public String[] getValueNames(){
		return valueNames;
	}
	
	public void analyze(Packet p){
		method="";
		headers.removeAllElements();
		if(!isAnalyzable(p)) return;
		
		try{
			BufferedReader in=new BufferedReader(new StringReader(new String(p.data)));
			
			method=in.readLine();
			if(method==null || method.indexOf("HTTP")==-1){
				// this packet doesn't contain HTTP header
				method="Not HTTP Header";
				return;
			}
			
			String l;
			//read headers
			while((l=in.readLine()).length()>0)
				headers.addElement(l);
		}catch(IOException e){}
	}
	
	public Object getValue(String valueName){
		if(valueNames[0].equals(valueName)) return method;
		if(valueNames[1].equals(valueName)) return headers;
		return null;
	}
	
	Object getValueAt(int index){
		if(index==0) return method;
		if(index==1) return headers;
		return null;
	}
	
	public Object[] getValues(){
		Object[] values=new Object[2];
		values[0]=method;
		values[1]=headers;
		
		return values;
	}
}

⌨️ 快捷键说明

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