[prev in list] [next in list] [prev in thread] [next in thread]
List: freebsd-hackers
Subject: Re: tcpdump etc
From: Dan Busarow <dan () dpcsys ! com>
Date: 1996-06-29 21:29:22
[Download RAW message or body]
On Sat, 29 Jun 1996, Brandon Gillespie wrote:
> I'm looking for a script that will sit on top of tcpdump and simply
> record the total bytes used by each system it receives information about
Here's what I use on a log file generated by tcpdump -t -n -q gateway
Each site I'm interested in has their own log file so no site name
logic is required.
Dan
--
Dan Busarow 714 443 4172
DPC Systems dan@dpcsys.com
Dana Point, California 83 09 EF 59 E0 11 89 B4 8D 09 DB FD E1 DD 0C 82
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <string.h>
#include <time.h>
char progname[256];
char errbuf[132];
main(int argc, char **argv)
{
FILE *fp;
char *cp;
long bytes = 0;
char filename[64];
char line[255];
int daily = 0;
time_t now;
strcpy(progname, argv[0]);
while(argc > 1 && argv[1][0] == '-')
{ switch(argv[1][1])
{
case 'd':
daily = 1;
break;
}
argc--;
argv++;
}
if(argc == 2)
strcpy(filename, argv[1]);
else
{ printf("usage: %s [-d] filename\n", progname);
printf(" -d daily run\n");
exit(1);
}
if((fp = fopen(filename, "r")) == (FILE *)NULL)
{ printf("could not open %s\n", filename);
exit(1);
}
while(fgets(line, 132, fp) != (char *)NULL)
{
cp = strtok(line, " ");
while((cp = strtok((char *)NULL, " ")) != (char *)NULL)
{
if(!strcmp(cp, "tcp") || !strcmp(cp, "udp"))
{ cp = strtok((char *)NULL, " ");
bytes += strtol(cp, (char **)NULL, 10);
}
}
}
fclose(fp);
if(daily)
{ now = time(0);
strftime(errbuf, 24, "%Y%m%d %H:%M ", localtime(&now));
printf("%s %12ld\n", errbuf, bytes);
truncate(filename, 0);
}
else
printf("Total bytes = %ld\n", bytes);
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic