📄 moicmp.cpp
字号:
/*! \file MoIcmp.cpp \brief ICMP僾儘僩僐儖幚憰僋儔僗 Copyright (c) 2004 Yamami All rights reserved. License=MIT/X License \author Yamami \version $Revision: 1.1 $ \date create:2004/09/20 update:$Date: 2004/09/20 15:29:03 $*//*! \class MoIcmp * \brief ICMP僾儘僩僐儖幚憰僋儔僗 */#include "MoIcmp.h"#include "MonesConfig.h"#include "MonesGlobal.h"/*! \brief initialize MoIcmp 僐儞僗僩儔僋僞 \author Yamami \date create:2004/09/20 update:*/MoIcmp::MoIcmp(){}/*! \brief initialize MoIcmp initIp \author Yamami \param AbstractMonic *pminsNic [in] NIC僋儔僗傊偺億僀儞僞 \date create:2004/09/20 update:*/void MoIcmp::initIp(AbstractMonic *pminsNic ) { //NIC僋儔僗傪曐帩 insAbstractNic = pminsNic; return;}/*! \brief initialize MoIcmp 僨僗僋僩儔僋僞 \author Yamami \date create:2004/08/20 update:*/MoIcmp::~MoIcmp() {}/*! \brief receiveIcmp ICMP僾儘僩僐儖庴怣 張棟 \param IP_HEADER *ipHead [in] IP僿僢僟傊偺億僀儞僞 \return int 寢壥 \author Yamami \date create:2004/09/20 update:2004/09/20*/int MoIcmp::receiveIcmp(IP_HEADER *ipHead){ int icmp_size; ICMP_HEADER *icmp; icmp=(ICMP_HEADER*)ipHead->data; icmp_size=MoPacUtl::swapShort(ipHead->len)-sizeof(IP_HEADER); /* 僠僃僢僋僒儉偺妋擣丅 */ if(MoPacUtl::calcCheckSum((dword*)icmp,icmp_size)){ return 0; } switch(icmp->type) { case ICMP_TYPE_ECHOREQ: transIcmp(ipHead->srcip,ICMP_TYPE_ECHOREP,0,icmp,icmp_size); break; case ICMP_TYPE_ECHOREP: //return saveRecv(ipHead,icmp_size+sizeof(IP_HEADER)); break; } return 0;}/*! \brief transIcmp ICMP憲怣 張棟 \param word dstip [in] 憲怣愭IP傾僪儗僗 \param byte type [in] ICMP僞僀僾 \param ICMP_HEADER *icmpHead [in] IP僿僢僟傊偺億僀儞僞 \param int size [in] 僷働僢僩僒僀僘 \return int 寢壥 \author Yamami \date create:2004/09/20 update:2004/09/20*/void MoIcmp::transIcmp(dword dstip, byte type, byte code, ICMP_HEADER *icmpHead, int size){ TRANS_BUF_INFO tbi; //ICMP僿僢僟乕偺愝掕 icmpHead->type=type; icmpHead->code=code; icmpHead->chksum=0; icmpHead->chksum=MoPacUtl::calcCheckSum((dword*)icmpHead,size); //憲怣僶僢僼傽僥乕僽儖偺愝掕 tbi.data[2]=NULL; tbi.size[2]=0; tbi.data[1]=(char*)icmpHead; tbi.size[1]=size; tbi.ipType=IPPROTO_ICMP; g_MoIp->transIp(&tbi,dstip,0,0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -