readfile_ex.c

来自「An ethernet bridge / VPN program for win」· C语言 代码 · 共 52 行

C
52
字号
#include <stdio.h>
#include <pcap.h>

#define LINE_LEN 16

main(int argc, char **argv) {
	
	pcap_t *fp;
	char errbuf[PCAP_ERRBUF_SIZE];
	struct pcap_pkthdr *header;
	u_char *pkt_data;
	u_int i=0;
	int res;

	if(argc != 2){

		printf("usage: %s filename", argv[0]);
		return -1;

	}
	
	/* Open a capture file */
	if ( (fp = pcap_open_offline(argv[1], errbuf) ) == NULL)
	{
		fprintf(stderr,"\nError opening dump file\n");
		return -1;
	}
	
	/* Retrieve the packets from the file */
	while((res = pcap_next_ex( fp, &header, &pkt_data)) >= 0){
		/* print pkt timestamp and pkt len */
		printf("%ld:%ld (%ld)\n", header->ts.tv_sec, header->ts.tv_usec, header->len);			
		
		/* Print the packet */
		for (i=1; (i < header->caplen + 1 ) ; i++)
		{
			printf("%.2x ", pkt_data[i-1]);
			if ( (i % LINE_LEN) == 0) printf("\n");
		}
		
		printf("\n\n");		
	}
	
	
	if(res == -1){
		printf("Error reading the packets: %s\n", pcap_geterr(fp));
	}
	
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?