#!/usr/bin/perl use strict; use DB_File; use Socket; my $filename = $ARGV[0]; tie my %h, 'DB_File', $filename, undef, 0644, $DB_BTREE ; foreach my $key (keys %h) { if($h{$key} =~ / adriver\.ru|google-analytics\.com|ad\.doubleclick\.net|tns-counter\.ru|ads\.adfox\.ru|a\.adwolf\.ru /) { delete $h{$key}; } } foreach my $key (keys %h) { my ($time,$srcaddr,$dstaddr,$proto,$sport,$dport,$servicename,$datalength,$data) = unpack('NIINNNN/A* NA*',$h{$key}); if($datalength eq 0) { ($data) = unpack("C/A*",$data); } my $srchostname = gethostbyaddr(pack("N",$srcaddr),AF_INET) || join ('.',unpack("C4",pack("N",$srcaddr))); my $dsthostname = gethostbyaddr(pack("N",$dstaddr),AF_INET) || join ('.',unpack("C4",pack("N",$dstaddr))); my $protoname = getprotobynumber($proto); print "------------------------\n",scalar localtime($time)," $protoname ",$srchostname,":$sport -> ",$dsthostname,":$dport (",$servicename,")\n",$data,"\n\n"; } untie %h;
Source: https://habr.com/ru/post/136282/
All Articles