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";