pcap_test gone
This commit is contained in:
parent
73b7fbcd2a
commit
7940136560
1 changed files with 0 additions and 74 deletions
|
|
@ -1,74 +0,0 @@
|
|||
/**********************************************************************
|
||||
* file: testpcap3.c
|
||||
* date: Sat Apr 07 23:23:02 PDT 2001
|
||||
* Author: Martin Casado
|
||||
* Last Modified:2001-Apr-07 11:23:05 PM
|
||||
*
|
||||
* Investigate using filter programs with pcap_compile() and
|
||||
* pcap_setfilter()
|
||||
*
|
||||
**********************************************************************/
|
||||
|
||||
#include <pcap.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <errno.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <netinet/if_ether.h>
|
||||
|
||||
/* just print a count every time we have a packet... */
|
||||
void my_callback(u_char *useless,const struct pcap_pkthdr* pkthdr,const u_char*
|
||||
packet)
|
||||
{
|
||||
static int count = 1;
|
||||
fprintf(stdout,"%d, ",count);
|
||||
fflush(stdout);
|
||||
count++;
|
||||
}
|
||||
|
||||
int main(int argc,char **argv)
|
||||
{
|
||||
int i;
|
||||
char *dev;
|
||||
char errbuf[PCAP_ERRBUF_SIZE];
|
||||
pcap_t* descr;
|
||||
const u_char *packet;
|
||||
struct pcap_pkthdr hdr; /* pcap.h */
|
||||
struct ether_header *eptr; /* net/ethernet.h */
|
||||
struct bpf_program fp; /* hold compiled program */
|
||||
bpf_u_int32 maskp; /* subnet mask */
|
||||
bpf_u_int32 netp; /* ip */
|
||||
|
||||
|
||||
if(argc != 2){ fprintf(stdout,"Usage: %s \"filter program\"\n"
|
||||
,argv[0]);return 0;}
|
||||
|
||||
/* grab a device to peak into... */
|
||||
dev = pcap_lookupdev(errbuf);
|
||||
if(dev == NULL)
|
||||
{ fprintf(stderr,"%s\n",errbuf); exit(1); }
|
||||
|
||||
/* ask pcap for the network address and mask of the device */
|
||||
pcap_lookupnet(dev,&netp,&maskp,errbuf);
|
||||
|
||||
/* open device for reading this time lets set it in promiscuous
|
||||
* mode so we can monitor traffic to another machine */
|
||||
descr = pcap_open_live(dev,BUFSIZ,1,-1,errbuf);
|
||||
if(descr == NULL)
|
||||
{ printf("pcap_open_live(): %s\n",errbuf); exit(1); }
|
||||
|
||||
/* Lets try and compile the program.. non-optimized */
|
||||
if(pcap_compile(descr,&fp,argv[1],0,netp) == -1)
|
||||
{ fprintf(stderr,"Error calling pcap_compile\n"); exit(1); }
|
||||
|
||||
/* set the compiled program as the filter */
|
||||
if(pcap_setfilter(descr,&fp) == -1)
|
||||
{ fprintf(stderr,"Error setting filter\n"); exit(1); }
|
||||
|
||||
/* ... and loop */
|
||||
pcap_loop(descr,-1,my_callback,NULL);
|
||||
|
||||
return 0;
|
||||
}
|
||||
Loading…
Reference in a new issue