Revision: 660
http://svn.sourceforge.net/magicmap/?rev=660&view=rev
Author: jzapotoc
Date: 2007-07-07 04:21:20 -0700 (Sat, 07 Jul 2007)
Log Message:
-----------
Added Paths:
-----------
trunk/magicmapclient/perl/magicmap_mac.pl
Added: trunk/magicmapclient/perl/magicmap_mac.pl
===================================================================
--- trunk/magicmapclient/perl/magicmap_mac.pl (rev 0)
+++ trunk/magicmapclient/perl/magicmap_mac.pl 2007-07-07 11:21:20 UTC (rev 660)
@@ -0,0 +1,72 @@
+#!/usr/bin/perl -w
+# by Maximilian Reiss
+
+use Socket;
+use Sys::Hostname;
+
+my $airport = "/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -s";
+
+my $host = "localhost";
+my $port = "2446";
+my $BSSID = "";
+my $Signal = "";
+my $hostname = hostname();
+my $proto = getprotobyname('udp');
+my $send;
+my $hisiaddr;
+my $hispaddr;
+# my $mac = "00:0d:93:8b:c6:05";
+my $mac = "00:16:cb:04:53:d6";
+my $d = "[0-9A-Fa-f]";
+my $dd = "$d$d";
+
+sub sendUDP($) {
+ $send = $_[0];
+ print "Sending udp packet $send\n";
+ socket(SOCKET, PF_INET, SOCK_DGRAM, $proto) || exit;
+ $hisiaddr = inet_aton($host) || exit;
+ $hispaddr = sockaddr_in($port, $hisiaddr);
+ defined(send(SOCKET, $send, 0, $hispaddr)) || exit;
+}
+
+
+sub main() {
+ #print "Hostname : $hostname\n";
+ while (1==1) {
+ open(TEST,"$airport |");
+ my $count = 0;
+ my $counter = 0;
+ ($Second, $minute, $hour, $dayOfMonth, $month, $yearOffset) = localtime();
+ $year = 1900 + $yearOffset;
+ $theTime = "$dayOfMonth.$month.$year $hour:$minute:$Second";
+ print "Time:$theTime ";
+ while ($Zeile = <TEST>) {
+ if ($count > 1) {
+ my @dummy = split(" ",$Zeile);
+ my $dummyLength = @dummy;
+ my $macEntry;
+ for (my $i = 1; $i < $dummyLength; $i++) {
+ if ($dummy[$i] =~ /($dd(:)$dd(\2$dd){4})/o) {
+ $macEntry = $i;
+ }
+ }
+
+ $Signal = $dummy[$macEntry - 4];
+ $BSSID = $dummy[$macEntry];
+
+ #print "Access Point $BSSID has signal level $Signal.\n";
+ $send = "|1*|Unknown*|$BSSID*|$Signal*|100*|$theTime*|$hostname*|$mac*|";
+ sendUDP($send);
+ $counter++;
+ }
+ $count++;
+ }
+ # Round complete
+ $send="|2*|0*|0*|0*|0*|$hostname*|$mac*|";
+ sendUDP($send);
+ print "Anzahl AP: $counter\n\n";
+ sleep 1;
+ }
+}
+
+main();
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|