摘要:从我的网易博客移动。。libpcap 是unix/linux 平台下的网络数据包捕获函数包, 大多数网络监控软件都以它为基础。 Libpcap 可以在绝大多数类unix 平台下工作. Libpcap 应用程序框架 Libpcap 提供了系统独立的用户级别网络数据包捕获接口,并充分考虑到应用程序的可移植性。Libpcap 可以在绝大多数类unix 平台下工作,在windows 平台下,一个与libpcap 很类似的函数包 winpcap 提供捕获功能,其官方网站是http://winpcap.polito.it/ 。1,安装GCC。(ubuntu默认安装了GCC)命令:sudo apt-...
阅读全文
摘要:从我的网易博客移动。。。思路:对所抓的包进行分析。分析目标MAC地址和本机MAC地址的比较。如果一样,则为下载流量。否则是上传流量1,获取本机MAC设置一个全局变量u_char uploadhost[ETHER_ADDR_LEN];
void getMac()//获取本机MAC
{ int sockfd; struct ifreq struReq; sockfd = socket(PF_INET,SOCK_STREAM,0); memset(&struReq,0,sizeof(struReq)); strncpy(struReq.ifr_name, "eth0",
阅读全文
摘要:从我的网易博客移动struct sniff_ethernet {u_char ether_dhost[ETHER_ADDR_LEN]; /* 目的主机的地址 */u_char ether_shost[ETHER_ADDR_LEN]; /* 源主机的地址 */u_short ether_type; /* IP? ARP? RARP? etc */};/* IP数据包的头部 */struct sniff_ip {#if BYTE_ORDER == LITTLE_ENDIANu_int ip_hl:4, /* 头部长度 */ip_v:4; /* 版本号 */#if BYTE_ORDER == BIG
阅读全文
摘要:从我的网易博客移动。。。ip->len的意思是数据报的长度,就是IP没有被切片时的大小,而pcap_pkthdr.len则是mtu,切片后被抓到的数据报大小。
阅读全文