Blame test/tcpdumpscii.txt

Packit 90a5c9
Packit 90a5c9
From marcs@znep.com Fri Apr 17 15:16:16 1998
Packit 90a5c9
Date: Sat, 22 Nov 1997 20:44:10 -0700 (MST)
Packit 90a5c9
From: Marc Slemko <marcs@znep.com>
Packit 90a5c9
To: TLOSAP <new-httpd@apache.org>
Packit 90a5c9
Subject: Re: Getting ethernet packets content under FreeBSD?  (fwd)
Packit 90a5c9
Reply-To: new-httpd@apache.org
Packit 90a5c9
Packit 90a5c9
Anyone too lazy to hack tcpdump (eg. my tcpdump has a -X option to display
Packit 90a5c9
the data in ASCII) can use something like the below to grab HTTP headers
Packit 90a5c9
when debugging broken clients.
Packit 90a5c9
Packit 90a5c9
Nothing complicated, but handy.
Packit 90a5c9
Packit 90a5c9
---------- Forwarded message ----------
Packit 90a5c9
Date: Sat, 22 Nov 1997 14:35:23 PST
Packit 90a5c9
From: Bill Fenner <fenner@parc.xerox.com>
Packit 90a5c9
To: Nate Williams <nate@mt.sri.com>
Packit 90a5c9
Cc: bmah@ca.sandia.gov, hackers@FreeBSD.ORG
Packit 90a5c9
Subject: Re: Getting ethernet packets content under FreeBSD? 
Packit 90a5c9
Packit 90a5c9
I usually just use this perl script, which I call "tcpdumpscii".
Packit 90a5c9
Then run "tcpdumpscii -s 1500 -x [other tcpdump args]".
Packit 90a5c9
Packit 90a5c9
  Bill
Packit 90a5c9
Packit 90a5c9
#!/import/misc/bin/perl
Packit 90a5c9
#
Packit 90a5c9
#
Packit 90a5c9
open(TCPDUMP,"tcpdump -l @ARGV|");
Packit 90a5c9
while (<TCPDUMP>) {
Packit 90a5c9
	if (/^\s+(\S\S)+/) {
Packit 90a5c9
		$sav = $_;
Packit 90a5c9
		$asc = "";
Packit 90a5c9
		while (s/\s*(\S\S)\s*//) {
Packit 90a5c9
			$i = hex($1);
Packit 90a5c9
			if ($i < 32 || $i > 126) {
Packit 90a5c9
				$asc .= ".";
Packit 90a5c9
			} else {
Packit 90a5c9
				$asc .= pack(C,hex($1));
Packit 90a5c9
			}
Packit 90a5c9
		}
Packit 90a5c9
		$foo = "." x length($asc);
Packit 90a5c9
		$_ = $sav;
Packit 90a5c9
		s/\t/        /g;
Packit 90a5c9
		s/^$foo/$asc/;
Packit 90a5c9
	}
Packit 90a5c9
	print;
Packit 90a5c9
}
Packit 90a5c9