[ Date Index ] [ Thread Index ] [ <= Previous by date / thread ] [ Next by date / thread => ]
Thanks to Simon's hint I got trafstats running in the end, but it is total overkill for what I need. So I thought I would write my 2nd ever Perl Script. (machine is running Debian/Stable) I got the first part going by modifying the code in section 10.4 of O'Reilly Perl for System Administration #!/usr/bin/perl -T -W use strict; use warnings; use Net::PcapUtils; use NetPacket::Ethernet; use NetPacket::IP; my $myip = "10.0.0.4"; my $prog = "udp port 123 and dst host $myip"; $| = 1; die "unable to perform capture\n" if (Net::PcapUtils::loop(\&grab_ip, FILTER => $prog, PROMISC =>0, DEV => eth0)); sub grab_ip{ my ($arg,$hdr,$pkt) = @_ ; my $src_ip = NetPacket::IP->decode( NetPacket::Ethernet::strip($pkt))->{src_ip}; print "$src_ip\n"; } but I really want to replace that print statememt with a line to insert the src_ip into a Postgresql database. the database is there (ntp-stats) # psql -U david -l List of databases Name | Owner | Encoding -----------+----------+----------- david | david | SQL_ASCII mydb | david | SQL_ASCII ntp-stats | david | SQL_ASCII template0 | postgres | SQL_ASCII template1 | postgres | SQL_ASCII trafstats | david | SQL_ASCII (6 rows) I can connect to it # psql -U david ntp-stats ntp-stats=# \d List of relations Name | Type | Owner ------------+-------+------- ntptraffic | table | david (1 row) but of course there is nothing in it yet ntp-stats=# select * from ntptraffic; ipaddress | at -----------+---- (0 rows) The at column was created with 'at timestamp not null default now()' so hopefully it should be an automatic timestamp of when the ipaddress was inserted. so I tried a quick hack to try out DBI (based on chapter 10 of MySQL from O'Reilly) #!/usr/bin/perl -T -W use strict; use warnings; use DBI; my $user = "david"; my $mydb = "ntp-stats"; my $dbh = DBI->connect("DBI:Pg:$mydb", $user, undef); $dbh->disconnect; but all I get is - DBI->connect(ntp-stats) failed: missing "=" after "ntp-stats" in connection info string at ./test4.pl line 8 Can't call method "disconnect" on an undefined value at ./test4.pl line 10. how do you connect to a Postgresql database? best regards Dave -- http://www.morgad.no-ip.info/index.html gpg:0x64B5E037 Distributed Proofreaders: http://www.pgdp.net The NTP server pool http://www.pool.ntp.org -- The Mailing List for the Devon & Cornwall LUG Mail majordomo@xxxxxxxxxxxxx with "unsubscribe list" in the message body to unsubscribe. FAQ: www.dcglug.org.uk/linux_adm/list-faq.html