Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re: Read() -Multiple Files-

by Corion (Pope)
on Jan 26, 2012 at 16:08 UTC ( #950152=note: print w/replies, xml ) Need Help??


in reply to Read() -Multiple Files-

Do you want to pass the filename on the command line? If so, see perlvar on @ARGV.

Do you want to add all files matching some wildcard? If so, see File::Glob on bsd_glob:

use File::Glob qw(bsd_glob); my @files = bsd_glob("C:\\Documents and Settings\\jordant\\Desktop\\Du +mp\\*.pcap"); for my $file (@files) { print "Processing '$file'\n"; };

Replies are listed 'Best First'.
Re^2: Read() -Multiple Files-
by jboy4 (Initiate) on Jan 26, 2012 at 17:06 UTC

    Could someone help integrating the above methods into my code? I am having issues getting either to work


    Here is the first one. Did i put something in wrong?
    #!/usr/bin/perl use DBI; use Net::TcpDumpLog; use NetPacket::Ethernet; use NetPacket::IP; use NetPacket::TCP; use Net::Pcap; use strict; use warnings; use File::Glob qw(bsd_glob); #Login to mysql my $dbh = DBI->connect('DBI:mysql:test', 'root', 'nstar' ) || die "Could not connect to +database: $DBI::errstr" +; #Pcap file to log my $log = Net::TcpDumpLog->new(); my @files = bsd_glob("C:\\Documents and Settings\\jordant\\Desktop\\D +ump\\*.pcap"); $log->read('$file'); for my $file (@files) { print "Processing '$file'\n"; }; #INFO from PCAP file foreach my $index ($log->indexes) { my ($length_orig, $length_incl, $drops, $secs, $msecs) = $log->header +($index); my $data = $log->data($index); my $eth_obj = NetPacket::Ethernet->decode($data); next unless $eth_obj->{type} == NetPacket::Ethernet::ETH_TYPE_IP; my $ip_obj = NetPacket::IP->decode($eth_obj->{data}); next unless $ip_obj->{proto} == NetPacket::IP::IP_PROTO_TCP; my $tcp_obj = NetPacket::TCP->decode($ip_obj->{data}); #get date time stamp of packet my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime( +$secs + $msecs/1000); $mon+=1; my $time = sprintf("%02d-%02d %02d:%02d:%02d", $mon, $mday, $hour, $min, $sec); #Info in Table $dbh->do( "INSERT INTO test2 (Date,Source,Destination,Packets +,Port) values ( '$time', '$ip_obj->{src_ip}', '$ip_obj->{dest_ip}', '$ip_obj->{len}', '$tcp_obj->{dest_port}')"); }
    Errors out: saying it cant find the directory
      Please tell us what you do, and what your program outputs and how that differs from what you expect. Also try reducing the program to the bare minimum that still shows the error. As a hint, consider where bsd_glob stores its results. This is not a code writing service.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://950152]
help
Chatterbox?
[erix]: the neighbours (a nat.hist. museum) have a narwhal skull with *2* tusks
[erix]: ( also: UniCorn Throne )
[zentara]: erix I hope both tusks pointed in the same direction :-)
LanX "♪..♫ Last night a DJ killed my wife ♪..♫ "
zentara...oO 1 more reason I prefer Perl to Python is I can't believe how long Python takes to compile, and you can't disable the myriad of tests

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (10)
As of 2017-03-30 16:43 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Should Pluto Get Its Planethood Back?



    Results (361 votes). Check out past polls.