Full explanation: http://lists.groogroo.com/mailman/ar...il/000292.htmlCode:#!/usr/bin/perl # the script will require some editing... # sigq.pl # Copyright 2001 Greg Hamerly (ghamerly@cs.ucsd.edu) # License: GPL (http://www.gnu.org/copyleft/gpl.html) # This script logs gps locations and wireless signal strength concurrently # to make it easy to map the locations of wireless access. use strict; my $device = "eth0"; my $iwconfig = "/usr/local/sbin/iwconfig"; my $gpsPort = "/dev/ttyS0"; # set the serial port settings: 9600 baud, ignore carriage returns system("/bin/stty -F $gpsPort 9600 igncr"); open(GPS, "<$gpsPort") or die("couldn't open serial port"); my $gps = <GPS>; my $utc_time = substr($gps, 1, 12); open(OUTPUT, ">data/sigstrength_$utc_time"); while (1) { $gps = <GPS>; # block on the GPS (the garmin etrex writes once a second) chomp($gps); open(QUAL, "$iwconfig $device |") or die("couldn't open iwconfig"); my ($signal, $noise, $network, $accesspt) = (0, 0, "", ""); foreach my $line (<QUAL>) { if ($line =~ /Link Quality/) { ($signal, $noise) = ($line, $line); $signal =~ s/.*Signal level:(-\d+).*/\1/; $noise =~ s/.*Noise level:(-\d+).*/\1/; } elsif ($line =~ /ESSID/) { $network = $line; $network =~ s/^.*ESSID:"([^"]*)".*$/\1/; } elsif ($line =~ /Access Point/) { $accesspt = $line; $accesspt =~ s/.*Access Point: (..:..:..:..:..:..).*/\1/; } } close(QUAL); chomp($signal, $noise, $network, $accesspt); print(OUTPUT "$gps $signal $noise \"$network\" $accesspt\n"); print("$gps $signal $noise \"$network\" $accesspt\n"); } close(OUT); close(GPS);
I just had to share this one... I've been looking for a good open source copy of wifi Scanner for a while now


Reply With Quote
Bookmarks