快速业务通道

Linux下编写网络抓包程序

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-08
printf("Received Packet Size: %dn", pkthdr->len);
printf("Payload:n");
for (i=0; i<pkthdr->len; i )
{
printf("x ", (unsigned int)packet[i]);

if ( (i = = 15 && i != 0) || (i = = pkthdr->len -1))
{
printf("n");
}
}
printf("nn************************************************n");
return;
}

int main(int argc, char *argv[])
{
int i = 0, count = 0;
pcap_t *descr = NULL;
char errbuf[PCAP_ERRBUF_SIZE], *device = NULL;
bpf_u_int32 netaddr = 0, mask = 0;
struct bpf_program filter;

memset(errbuf, 0, sizeof(errbuf));

if (argc != 2)
{
device = pcap_lookupdev(errbuf);
}
else
{
device = argv[1];
}
printf("Try to open device %sn", device);

if((descr = pcap_open_live(device, MAXBYTES2CAPTURE, 1, 0, errbuf)) = =NULL)
{
printf("error : %sn", errbuf);
exit(-1);
}
pcap_lookupnet(device, &netaddr, &mask, errbuf);

if (pcap_compile(descr, &filter, "arp and ether host 00:0c:29:b7:f6:33",0, mask) < 0)
{
printf("pcap_compile errorn");
exit(-1);
}

pcap_setfilter(descr, &filter);

pcap_loop(descr, 3, ProcessPacket, (u_char *)&count);

return 0;
}

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号