使用libpcap进行抓包,后续分析(未完待续)
主要使用库libpcap,辅助
#include <pcap.h> #include <sys/socket.h> #include <netinet/in.h> #include <netinet/ip.h> #include <netinet/tcp.h> #include <netinet/if_ether.h> #include <arpa/inet.h>
实际运行结果如下
具体步骤:
查找网卡函数,返回当前网卡指针
dev = pcap_lookupdev(errbuf);
查找当前网络函数,返回当前网络的网络地址和此网络掩码地址(比如我的ip是192.168.138.141,则我的网络地址192.168.138.1,掩码地址255.255.255.0)
ret = pcap_lookupnet(dev,&netp,&maskp,errbuf);
监听网卡函数(个人理解)
pcap_t *device = pcap_open_live(dev,65535,1,0,errbuf);捕获数据包函数
pcap_loop(device,-1,ethernet_packet_callback,NULL);
个人认为程序难点在于数据处理,并非获取数据包。
由于捕获的是一大串子十六进制数字符数据,所以如何处理这些数据是关键,
未完待续