ARP协议数据包的捕获解析设计与.pptx
文本预览下载声明
ARP 协议数据包的捕获解析设计与实现;一、ARP数据包结构;二、获取网卡列表;/* print devices list */
for (d = alldevs;d != NULL; d = d-next )
{
printf(%d. %s,++i,d-name);
if (d-description)
printf((%s)\n,d-description);
else
printf((No description avaliable)\n);
}
if (i == 0)
{
printf(\nNo interfaces found! Make sure Winpcap is installed.\n);
return -1;
}
printf(Enter the interface number(1-%d):,i);
scanf(%d,inum);
;以混乱模式打开网络设备;编辑过滤器并设置过滤器,只捕获ARP数据包;//设置过滤器
if (pcap_setfilter(adhandle, fcode)0)
{
cout\nError setting the filter.\n;
pcap_freealldevs(alldevs);
return 0;
}
cout\t\tlistening on d-description...endlendl;
ofstream fout(argv[1],ios::app); //日志记录文件
//加入日期记录
time_t t;
time(t);
fout.seekp(0,ios::end);
;if(fout.tellp()!=0)
foutendl;
fout\t\tARP request(1)/replay(2) on ctime(t);
coutsour IP Addr Sour MAC Address
Des IP Addr Des MAC Address
OP Timeendl;
foutSour IP Addr Sour MAC Address
Des IP Addr Des MAC Address
OP Timeendl;
//释放设备列表
pcap_freealldevs(alldevs);
;//开始捕获MAC帧
int result; //时间到返回结果
while((result=pcap_next_ex(adhandle, header, pkt_data)) = 0)
{
if(result==0)
continue;
packet_handler(header,pkt_data,cout); //解析ARP包,输出结果
packet_handler(header,pkt_data,fout); //输出到文件
}
?
?
return 0;
}
显示全部