NAME
HTTP::Sessioniser - Rebuild HTTP sessions from pcap streams
SYNOPSIS
use HTTP::Sessioniser;
# This will be called once per HTTP request/response pair
sub my_callback {
my ($request, $response, $info) = @_;
# $request is HTTP::Request
# $response is HTTP::Response
}
my $s = HTTP::Sessioniser->new();
$s->parse_file('/path/to/file.pcap', \&my_callback);
DESCRIPTION
This module extracts HTTP sessions from pcap files with the help of Net::LibNIDS.
It will piece HTTP data back together and return a pair of HTTP::Request and HTTP::Response which correspond to one HTTP 'session'.
HTTP CONNECT sessions are dealt with specially: the first request/response pair will be returned as normal, subsequent requests will be skipped (as they do not contain HTTP requests or responses, only SSL data).
EXPORT
None by default.
Methods
new
my $s = HTTP::Sessioniser->new();
Creates a new object.
parse_file
$s->parse_file('/path/to/file.pcap', \&callback);
Parses a pcap file using libnids, rebuilding pairs of HTTP::Request and HTTP::Response. These will be passed to the callback function along with a hash of information about the current connection.
ports
$s->ports( [ 80, 443, 8080, 3128 ] );
my @p = $s->ports;
Set or return and array of ports we expect to see HTTP transmission on. The default set of ports is 80, 443, 8080 and 3128.
If you are looking for HTTP on other ports (e.g. proxying or application servers) then use this to set the filter appropriately.
add_port
$s->add_port(8000);
Add one port to the filter list.
BUGS
This module does not support HTTP pipelining. It could be added if I find data which requires it.
SEE ALSO
HTTP::Parser - used to parse data into HTTP::Request or HTTP::Response objects
AUTHOR
David Cannings <david@edeca.net>
COPYRIGHT AND LICENSE
Copyright (C) 2010 by David Cannings