--- flow-tools-0.68/src/flow-export.c.orig 2004-03-30 21:11:14.000000000 -0600 +++ flow-tools-0.68/src/flow-export.c 2005-12-09 00:05:01.000000000 -0600 @@ -115,7 +115,7 @@ struct jump format[] = {{format0}, {format1}, {format2}, {format3}, {format4}, {format5}}; -int debug; +int debug, longips; int main(int argc, char **argv) { @@ -131,6 +131,7 @@ format_index = 0; bzero(&opt, sizeof opt); ascii_mask = 0; + longips = 0; opt.cflowd_mask = 0xFFFFFFFFL; opt.ft_mask = 0xFFFFFFFFFFFFFFFFLL; @@ -138,7 +139,7 @@ /* profile */ ftprof_start (&ftp); - while ((i = getopt(argc, argv, "h?d:f:m:u:")) != -1) + while ((i = getopt(argc, argv, "h?d:f:m:u:l")) != -1) switch (i) { @@ -173,6 +174,10 @@ strcpy(opt.dbaseURI, optarg); break; + case 'l': /* IP addresses in longint format */ + longips = 1; + break; + default: usage(); exit (1); @@ -1171,11 +1176,12 @@ int fmt_xfields_val(char *fmt_buf, char *rec, struct fts3rec_offsets *fo, u_int64 xfields, int quote) { - int comma, len; + int comma, len, len2, i; fmt_buf[0] = 0; + char str[20]; - len = comma = 0; + len = comma = len2 = i = 0; if (xfields & FT_XFIELD_UNIX_SECS) { if (comma) fmt_buf[len++] = ','; @@ -1200,10 +1206,20 @@ if (xfields & FT_XFIELD_EXADDR) { if (comma) fmt_buf[len++] = ','; - if (quote) fmt_buf[len++] = '"'; - len += fmt_ipv4(fmt_buf+len, *((u_int32*)(rec+fo->exaddr)), - FMT_JUST_LEFT); - if (quote) fmt_buf[len++] = '"'; + if (longips) { + str[0] = 0; + sprintf(str,"%u",*((u_int32*)(rec+fo->exaddr))); + len2 = strlen(str); + for (i=0;iexaddr)), + FMT_JUST_LEFT); + if (quote) fmt_buf[len++] = '"'; + } comma = 1; } @@ -1258,19 +1274,39 @@ if (xfields & FT_XFIELD_SRCADDR) { if (comma) fmt_buf[len++] = ','; - if (quote) fmt_buf[len++] = '"'; - len += fmt_ipv4(fmt_buf+len, *((u_int32*)(rec+fo->srcaddr)), - FMT_JUST_LEFT); - if (quote) fmt_buf[len++] = '"'; + if (longips) { + str[0] = 0; + sprintf(str,"%u",*((u_int32*)(rec+fo->srcaddr))); + len2 = strlen(str); + for (i=0;isrcaddr)), + FMT_JUST_LEFT); + if (quote) fmt_buf[len++] = '"'; + } comma = 1; } if (xfields & FT_XFIELD_DSTADDR) { if (comma) fmt_buf[len++] = ','; - if (quote) fmt_buf[len++] = '"'; - len += fmt_ipv4(fmt_buf+len, *((u_int32*)(rec+fo->dstaddr)), - FMT_JUST_LEFT); - if (quote) fmt_buf[len++] = '"'; + if (longips) { + str[0] = 0; + sprintf(str,"%u",*((u_int32*)(rec+fo->dstaddr))); + len2 = strlen(str); + for (i=0;idstaddr)), + FMT_JUST_LEFT); + if (quote) fmt_buf[len++] = '"'; + } comma = 1; } @@ -1429,7 +1465,7 @@ void usage(void) { - fprintf(stderr, "Usage: flow-export [-h] [-d debug_level] [-f format] [-m mask_fields] -u [database URI]\n"); + fprintf(stderr, "Usage: flow-export [-l (long ips)] [-h] [-d debug_level] [-f format] [-m mask_fields] -u [database URI]\n"); fprintf(stderr, "\n%s version %s: built by %s\n", PACKAGE, VERSION, FT_PROG_BUILD);