2009-04-24 8 views
2

Ich möchte in der Lage sein, die Geschwindigkeit der drahtlosen Schnittstelle unter Mac OS X zu bekommen. Ich habe ein Perl-Skript, das die anderen Informationen für die WLAN-Karte erhält, aber ich muss noch die Verbindungsgeschwindigkeit erhalten.Wie bekomme ich die Geschwindigkeit eines Apple-Flughafens von Perl?

Für den Moment habe ich die Flughafengeschwindigkeit statisch mit: $ airport_rate = "54"; (siehe Code unten).

Welchen Befehl könnte ich verwenden, um die Geschwindigkeit der eingebauten Flughafenkarte zu erhalten oder was fehlt mir in meinem Code unten? Danke

EDIT: Dieser Code funktioniert jetzt. Vielen Dank. Beispielausgabe für das Skript:

ETHERNET IP : 192.168.2.7 
AIRPORT IP : 192.168.2.4 
AIRPORT STATUS : CONNECTED 
     SSID : Forcefield 
     RATE : 54 Mb/s 
#!/usr/bin/perl                           
# a little script to get your network status                    

$en0_info = `ifconfig en0 | grep "inet" | grep -v 127.0.0.1`; 
$en1_info = `ifconfig en1 | grep "inet" | grep -v 127.0.0.1`; 
$airport_info = `/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I`; 

if($en0_info) 
{ 
    $en0_info =~ /inet (.*) netmask/s; 
    $output .= "ETHERNET IP : $1\n"; 
} 
else 
{ $output .= "ETHERNET IP : INACTIVE\n"; } 

if($en1_info) 
{ 
    $en1_info =~ /inet (.*) netmask/s; 
    $en1_info = $1; 
    $airport_info =~ /lastTxRate: (\d\d\d)/s; 
    $airport_rate = $1; 
    $airport_info =~ /BSSID(.*?)SSID: (.*?)\n/s; 
    $airport_SSID = $2; 
    $output .= "AIRPORT IP : $en1_info\n"; 
    $output .= "AIRPORT STATUS : CONNECTED\n"; 
    $output .= "  SSID : $airport_SSID\n"; 
    $output .= "  RATE : $airport_rate Mb/s\n"; 
} 
else 
{ 
    $output .= "AIRPORT STATUS : INACTIVE\n"; 
} 

print "$output"; 

Antwort

6

Ich war überrascht, das ist nicht trivial zu entdecken. Eine schnelle Anwendung von Yahoo! Search hat einen Zeiger auf das Befehlszeilenskript 'airport' gefunden, das so aussieht, als würde es Ihnen die gewünschten Antworten geben. Siehe http://osxdaily.com/2007/01/18/airport-the-little-known-command-line-wireless-utility/

Auf den Punkt gebracht, /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I wird Ihnen geben, was Sie suchen. Und es scheint auch keine Root-Rechte zu erfordern.

Verwandte Themen