[vox-tech] network blinken lights experiment

dylan vox-tech@lists.lugod.org
Wed, 21 May 2003 20:46:40 -0700


thanks for the ideas--

i found a simple way to do it using ngrep and awk!

ngrep -q -D | awk -f netled.awk > /dev/ttyS0

netled.awk consists of

/:80/ { print 0 }
/:21/ { print 1 }
/:25/ { print 2 }
/:995/ { print 3 }
/:22/ { print 4 }
/192\.168\.10\.60/ {print 5}


seems to work.. however, ngrep doesn't always report the packets as soon as
they occur....need to figure out how to make it more responsive..

here is a quick picture of it in action:
http://iici.no-ip.org/~dylan/netled/netled2.jpg


-dylan

on 03.5.19 3:00 PM, wenk@praxis.homedns.org at wenk@praxis.homedns.org was
reported to have writen:

> I wonder if using tcpdump would be the best way of doing this...
> 
> And yes, you could do the whole thing via perl using perl regular
> expressions.  Either do a open INBUF, "tail -f <file> |"; or maybe
> there is a way to do it completely in perl.  I haven't had to do this
> and the cookbook is not handy at the moment... You can then have perl
> open the serial port, and send the byte chunk that way.  IE, A basic
> script would be: 
> 
> open INBUF, "tail -f <file> |";
> 
> while (<INBUF>) {
> 
> if (/My Happy Regexp/) {
> 
> open OUT, "/dev/ttyS0";
> print OUT, "MYBYTE\n";
> close OUT;
> }
> }
> 
> 
> I didn't run that thru the interpreter, so I may have done something
> boneheaded in my syntax.
> 
> Back to tcpdump, if you have netfilter logging in your kernel, you
> can always enable logging that way.  I'm not sure if that's the way
> you want to go. 
> 
> Mike
> 
> 
>