ethernetanalyzer.java

来自「本程序用来实现对网络流量的获取及分析功能。可以分离出tcp/udp报文,http」· Java 代码 · 共 59 行

JAVA
59
字号
package jdumper.analyzer;
import jpcap.packet.*;

public class EthernetAnalyzer extends JDPacketAnalyzer
{
	private static final String[] valueNames={
		"Frame Type",
		"Source MAC",
		"Destination MAC"
	};
	private EthernetPacket eth;

	public EthernetAnalyzer(){
		layer=DATALINK_LAYER;
	}
	
	public boolean isAnalyzable(Packet p){
		return (p.datalink!=null && p.datalink instanceof EthernetPacket);
	}

	public String getProtocolName(){
		return "Ethernet Frame";
	}

	public String[] getValueNames(){
		return valueNames;
	}

	public void analyze(Packet p){
		if(!isAnalyzable(p)) return;
		eth=(EthernetPacket)p.datalink;
	}

	public Object getValue(String valueName){
		for(int i=0;i<valueNames.length;i++)
			if(valueNames[i].equals(valueName))
				return getValueAt(i);

		return null;
	}

	Object getValueAt(int index){
		switch(index){
		case 0: return new Integer(eth.frametype);
		case 1: return eth.getSourceAddress();
		case 2: return eth.getDestinationAddress();
		default: return null;
		}
	}
	
	public Object[] getValues(){
		Object[] v=new Object[3];
		for(int i=0;i<3;i++)
			v[i]=getValueAt(i);
		
		return v;
	}
}

⌨️ 快捷键说明

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