Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
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"; };


Comment on Re: Read() -Multiple Files-
Select or Download Code
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?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (4)
As of 2014-10-02 03:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    What is your favourite meta-syntactic variable name?














    Results (45 votes), past polls