如何分辨嗅到到的广播包(ARP)是本机发出的还是来自其他机发出的啊?
本人用C在编写一个嗅探程序,基于WINPCAP,按我对WINPCAP的了解,它在混杂模式下,可以接收流经本机网卡的所有数据包。现在有一个要求,在接受到ARP包时,)需要识别出是本机发出的还是其他机发出的??--主要是追踪伪造的ARP包。
ARP广播包:
目标MAC:FFFFFFFFFFFF,目标IP:0.0.0.0
伪造的MAC和IP
用判断包目标信息为进还是为去行不通
有谁知道,给个提示(方法或点子,编程语言不限)
谢谢。
急,在线等!!!!!
while(off<(lpPacket->ulBytesReceived))//嗅探到流经"网卡"(流进\流出)的数据包
{
bpf_hdr *hdr=(struct bpf_hdr *)(buf+off);
off+= hdr->bh_hdrlen;
buffer=(char *)(buf+off);
buflen=hdr->bh_datalen;
lpEthdr=(ET_HEADER *)(buffer);
if(lpEthdr->eh_type==htons(0x0806))
{
ARP_HEADER *arpheader=(ARP_HEADER *)(buffer+sizeof(ET_HEADER));
如果判断是本机发出的呢?
}