www.pudn.com > SnifferPro.rar > EtherHead.cpp


// EtherHead.cpp: implementation of the EtherHead class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#include "stdafx.h" 
#include "snifferpro.h" 
#include "EtherHead.h" 
 
#ifdef _DEBUG 
#undef THIS_FILE 
static char THIS_FILE[]=__FILE__; 
#define new DEBUG_NEW 
#endif 
 
////////////////////////////////////////////////////////////////////// 
// Construction/Destruction 
////////////////////////////////////////////////////////////////////// 
 
EtherHead::EtherHead() 
{ 
 
} 
 
EtherHead::EtherHead(const unsigned char *buf,int buflen) 
{ 
	//unsigned char *buf=new unsigned char[bufferlen]; 
	//int buflen=bufferlen; 
	unsigned char *pos; 
	 
	//memcpy(buf,buffer,bufferlen); 
	pos=(unsigned char *)buf; 
 
	for(int i=0;i<6;i++){ 
		destaddr[i]=*pos; 
		pos++; 
	} 
 
	for(i=0;i<6;i++){ 
		srcaddr[i]=*pos; 
		pos++; 
	} 
 
	type=(*pos)*0x100+(*(pos+1)); 
 
	//delete[] buf; 
} 
 
EtherHead::~EtherHead() 
{ 
} 
 
void EtherHead::GetMacSrcAddr(char *str) 
{ 
	sprintf(str,"%02X-%02X-%02X-%02X-%02X-%02X",srcaddr[0],srcaddr[1],srcaddr[2],srcaddr[3],srcaddr[4],srcaddr[5]); 
} 
 
CString EtherHead::GetMacSrcAddr() 
{ 
	CString str; 
 
	str.Format("%02X-%02X-%02X-%02X-%02X-%02X",srcaddr[0],srcaddr[1],srcaddr[2],srcaddr[3],srcaddr[4],srcaddr[5]); 
	return str; 
} 
 
void EtherHead::GetMacDestAddr(char *str) 
{ 
	sprintf(str,"%02X-%02X-%02X-%02X-%02X-%02X",destaddr[0],destaddr[1],destaddr[2],destaddr[3],destaddr[4],destaddr[5]); 
} 
 
CString EtherHead::GetMacDestAddr() 
{ 
	CString str; 
 
	str.Format("%02X-%02X-%02X-%02X-%02X-%02X",destaddr[0],destaddr[1],destaddr[2],destaddr[3],destaddr[4],destaddr[5]); 
	return str; 
} 
 
CString  EtherHead::GetType() 
{ 
	CString str; 
	switch(this->type){ 
	case 2048: 
		str.Format("IP"); 
		break; 
	default: 
		str.Format(""); 
	} 
	return str; 
}