当前位置: 技术问答>linux和unix
简单的C编程,有点问题
来源: 互联网 发布时间:2016-03-23
本文导语: 最近我在做一个网络方面的东西: 在Linux下,用C语言实现局域网的抓包; 现在我没有一点思路,想请各位大虾帮忙点拨一下,分享一下你的思路; 小弟在此不胜感激; | 一般的sniffer都是把...
最近我在做一个网络方面的东西:
在Linux下,用C语言实现局域网的抓包;
现在我没有一点思路,想请各位大虾帮忙点拨一下,分享一下你的思路;
小弟在此不胜感激;
在Linux下,用C语言实现局域网的抓包;
现在我没有一点思路,想请各位大虾帮忙点拨一下,分享一下你的思路;
小弟在此不胜感激;
|
一般的sniffer都是把网卡设为混杂模式,就可以接收hub的数据了
google上找一些sniffer的例子看一下阿
google上找一些sniffer的例子看一下阿
|
for (int i=0;iip_id));
printf("总长度:%in",ntohs(pIpheader->ip_len));
printf("偏移量:%in",ntohs(pIpheader->ip_off));
printf("生存时间:%dn",pIpheader->ip_ttl);
printf("服务类型:%dn",pIpheader->ip_tos);
printf("协议类型:%dn",pIpheader->ip_p);
printf("检验和:%in",ntohs(pIpheader->ip_sum));
printf("源IP地址:%s ",szSourceIP);
printf("n目的IP地址:%s ",szDestIP);
printf("n****************UDP协议头部******************n");
printf("源端口:%in",ntohs(pUdpheader->sport));
printf("目的端口:%in",ntohs(pUdpheader->dport));
printf("检验和:%in",ntohs(pUdpheader->cksum));
printf("UDP长度:%in",ntohs(pUdpheader->len));
for (int i=0;iip_id));
printf("总长度:%in",ntohs(pIpheader->ip_len));
printf("偏移量:%in",ntohs(pIpheader->ip_off));
printf("生存时间:%dn",pIpheader->ip_ttl);
printf("服务类型:%dn",pIpheader->ip_tos);
printf("协议类型:%dn",pIpheader->ip_p);
printf("检验和:%in",ntohs(pIpheader->ip_sum));
printf("源IP地址:%s ",szSourceIP);
printf("n目的IP地址:%s ",szDestIP);
printf("n****************ICMP协议头部******************n");
printf("源端口:%in",ntohs(pIcmpheader->sport));
printf("目的端口:%in",ntohs(pIcmpheader->dport));
printf("序列号:%in",ntohs(pIcmpheader->i_seq));
printf("标识号:%in",ntohs(pIcmpheader->i_id));
printf("类型:%d,%dn ", pIcmpheader->i_type,pIcmpheader->i_code);
printf("时间:%cn",pIcmpheader->timestamp);
for (int i=0;i