#!/usr/bin/perl
# 2006-06-01 16:14
use strict;
use IO::Socket;
use Proc::Daemon;
my $daemonize = 1;
my $port = 516;
my $host = '10.0.7.12';
my $filter = 'not src net 195.67.112.192 mask 255.255.255.224';
my $interface = 'vr0';
Proc::Daemon::Init if ($daemonize);
my $cli = IO::Socket::INET->new(PeerAddr => $host, PeerPort => $port, Proto => 'udp');
my $sl = '';
print "p0f: /usr/local/bin/p0f -tSFi $interface '$filter'|\n" if (!$daemonize);
open(P0F,"/usr/local/bin/p0f -tSFi $interface '$filter'|") or die("Can't start.");
while (my $l = <P0F>) {
$l =~ s/[\r\n]//g;
$sl .= "$l\n" if ($sl eq '' || $l =~ /^\s+/);
if ($l =~ /^\s+->/) {
print $sl if (!$daemonize);
$cli->send($sl);
$sl = '';
}
}
close(P0F);
(2008-01-11)