📄 ethernetpacket.java
字号:
package jpcap;
/**
* 僀乕僒僱僢僩僷働僢僩傪昞尰偡傞僋儔僗偱偡
*/
public class EthernetPacket extends DatalinkPacket
{
/**
* 埗愭MAC傾僪儗僗(6byte)
*/
public byte[] dst_mac;
/**
* 憲怣尦MAC傾僪儗僗(6byte)
*/
public byte[] src_mac;
/**
* 僼儗乕儉僞僀僾
*/
public short frametype;
void setValue(byte[] dst,byte[] src,short frame){
this.dst_mac=dst;
this.src_mac=src;
this.frametype=frame;
}
/**
* 憲怣尦MAC傾僪儗僗暥帤楍傪曉偟傑偡
*/
public String getSourceAddress(){
char[] src=new char[17];
for(int i=0;i<5;i++){
src[i*3]=hexUpperChar(src_mac[i]);
src[i*3+1]=hexLowerChar(src_mac[i]);
src[i*3+2]=':';
}
src[15]=hexUpperChar(src_mac[5]);
src[16]=hexLowerChar(src_mac[5]);
return new String(src);
}
/**
* 憲怣愭MAC傾僪儗僗暥帤楍傪曉偟傑偡
*/
public String getDestinationAddress(){
char[] dst=new char[17];
for(int i=0;i<5;i++){
dst[i*3]=hexUpperChar(dst_mac[i]);
dst[i*3+1]=hexLowerChar(dst_mac[i]);
dst[i*3+2]=':';
}
dst[15]=hexUpperChar(dst_mac[5]);
dst[16]=hexLowerChar(dst_mac[5]);
return new String(dst);
}
/**
* 偙偺僿僢僟偺撪梕傪暥帤楍偱昞尰偟傑偡<BR>
* <BR>
* 宍幃丗src_mac -> dst_mac (frametype)
*/
public String toString(){
return super.toString()+" "+getSourceAddress()+"->"+
getDestinationAddress()+" ("+frametype+")";
}
private char hexUpperChar(byte b){
b=(byte)((b>>4)&0xf);
if(b==0) return '0';
else if(b<10) return (char)('0'+b);
else return (char)('a'+b-10);
}
private char hexLowerChar(byte b){
b=(byte)(b&0xf);
if(b==0) return '0';
else if(b<10) return (char)('0'+b);
else return (char)('a'+b-10);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -