Whatever

p0f.udpsend

#!/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)