基于 C语言 网络流量在线分析系统
1.操作系统:macOS Sierra 10.12.5
2.编程语言:C语言
3.网络数据包捕获函数包:libpcap
4.Xcode 8.3.3 + mac终端
1.tcpdump网站(http://www.tcpdump.org)下载libpcap的latest release
// vim device.c
#include <stdio.h>
#include <pcap/pcap.h>
int main(int argc,char *argv[]) {
char *dev,errbuf[PCAP_ERRBUF_SIZE];
dev=pcap_lookupdev(errbuf);
if(dev==NULL) {
printf("couldn't find default device: %s\n",errbuf);
return(2);
}
printf("Device: %s\n",dev);
return(0);
}
gcc -o device device.c -l pcap
sudo ./device
如果显示:Device: en0 说明测试成功。
进入项目目录,在终端中运行下面的命令
sudo su
gcc -o catch pcap_catch.c -l pcap
./catch
gcc -o analysis pcap_analysis.c -l pcap
./analysis
- 实时抓取网络中的数据包
- 离线存储网络中的数据包
- 分析各个网络协议格式
- 采用Hash链表的形式将网络数据以连接(双向流)的形式存储
- 计算并显示固定时间间隔内网络连接(双向流)的统计量