PerlSufi: your reply about
NetPacket would certainly help in the direction of implementing the 'tcpdump' approach the OP mentioned. May I also suggest the
Net::Frame suite as I believe it is more complete based on number of CPAN results returned. That and I also have a bias as I use it (very easy) and have written a few extensions (IPv6 and extension headers, DNS, RIP/ng, etc...) for it.
Ultimately, I think the IO::Socket::Multicast route with your recommendation of a MIME package for emailing is the best way to go. But then again, TMTOWTDI!