直接上代码先:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pcap.h>
#include <netinet/if_ether.h>
#include <netinet/ip.h>
#include <netinet/tcp.h>
#include <time.h>
static void ethernet_packet_callback(unsigned char *argument, const struct pcap_pkthdr *pcap_header, const unsigned char *packet_content);
static void ip_packet_callback(unsigned char *argument, const struct pcap_pkthdr *pcap_header, const unsigned char *packet_content);
static void tcp_packet_callback(unsigned char *argument, const struct pcap_pkthdr *pcap_header, const unsigned char *packet_content);
static void arp_packet_callback(unsigned char *argument, const struct pcap_pkthdr *pcap_header, const unsigned char *packet_content);
int main(int argc,char **argv)
{
pcap_t *pt = NULL;
char *dev = NULL;
char errbuf[128];
int ret = -1;
struct bpf_program fp;
bpf_u_int32 maskp,netp;
int pcap_time_out =