[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
>
>
>