一行就行
sudo apt install libpcap-dev
输入密码,选择yes,倒一杯红tea的时间就下完了
因为这回是做实验,所以先贴一下需求
winpcapt或libpcap编程过程,编写程序捕获实验一的数据包。
还原四元组(源目的IP源目的端口),和文件内容,写到一个文件里(默认文件)
如果需要也可输出到特定文件(通过配置文件或命令行参数决定,屏幕也是特定文件之一)
至于libpcap的使用,贴一个讲的巨清楚且详细的!
文章链接:
【太厉害了,简直是行走的说明书
【我的实验代码真的小学鸡……
#include <pcap.h>
#include <time.h>
#include <stdlib.h>
#include <stdio.h> void getPacket(u_char * arg, const struct pcap_pkthdr * pkthdr, const u_char * packet)
{ int * id = (int *)arg; FILE *fp;fp = 0;if((fp = fopen(","a+")) == NULL){printf("打开文件失败qvqn");exit(-1);} printf("id: %dn", ++(*id)); printf("Packet length: %dn", pkthdr->len); printf("Number of bytes: %dn", pkthdr->caplen); printf("Recieved time: %s", ctime((const time_t *)&pkthdr->ts.tv_sec)); int i;printf("源ip地址:");fputs("源ip地址:",fp); for(i=26; i<30; ++i) { printf("%d.", packet[i]);fprintf(fp,"%d.",packet[i]);}printf("n");fputs("n",fp); printf("目的ip地址:");fputs("目的ip地址:",fp); for(i=30; i<34; ++i) { printf("%d.", packet[i]);fprintf(fp,"%d.",packet[i]);}printf("n源端口号:%d%dn",packet[34],packet[35]);fprintf(fp,"n源端口号:%d%dn",packet[34],packet[35]);printf("目的端口号:%d%dn",packet[36],packet[37]);fprintf(fp,"目的端口号:%d%dn",packet[36],packet[37]);printf("n");for(i=53; i<pkthdr->len; ++i) { printf("%02x ", packet[i]);// fprintf(fp,"%02x ",packet[i]);}printf("n");fputs("n",fp); fclose(fp);
} int main()
{ char errBuf[PCAP_ERRBUF_SIZE], * devStr; /* get a device */ devStr = pcap_lookupdev(errBuf); if(devStr) { printf("success: device: %sn", devStr); } else { printf("error: %sn", errBuf); exit(1); } /* open a device, wait until a packet arrives */ pcap_t * device = pcap_open_live(devStr, 65535, 1, 0, errBuf); if(!device) { printf("error: pcap_open_live(): %sn", errBuf); exit(1); } /* construct a filter */ struct bpf_program filter; pcap_compile(device, &filter, "tcp", 1, 0); pcap_setfilter(device, &filter); /* wait loop forever */ int id = 0; pcap_loop(device, 5, getPacket, (u_char*)&id); pcap_close(device); return 0;
}
运行这个真的是……起落落落落落
如果你按平时的方法编译,它就会给你弹出一堆未定义的引用
所以要先链接函数库,代码如下
gcc text.c -o test -lpcap
然后就可以快乐的运行了
sudo ./text
如果不用root身份会弹出一个莫名其妙的错误但是我忘记截图了……
就这样吧。
不信比来长下泪,开箱验取石榴裙。
本文发布于:2024-01-30 03:26:24,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170655638818900.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |