2009-04-24 11 views
2

私はMac OS Xの下でワイヤレスインターフェイスの速度を得ることができるようにしたいと思います。私はワイヤレスカードのための他の情報を取得するperlスクリプトを持っていますが、私はまだ接続速度を取得する必要があります。Apple Airportの速度をPerlから取得するにはどうすればよいですか?

私は静かに空港の速度を設定しています:$ airport_rate = "54"; (下記のコードを参照)。

内蔵の空港カードの速度を得るためにはどのようなコマンドを使用できますか、以下のコードでは何が分かりませんか。ありがとう

編集:このコードは現在動作します。ありがとう。スクリプトの 出力例:

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

答えて

6

私は、これは非自明で発見して驚きました。 ただし、Yahoo!検索で 'airport'コマンドラインスクリプトへのポインタが見つかりました。このスクリプトは必要な答えを表示するように見えます。 http://osxdaily.com/2007/01/18/airport-the-little-known-command-line-wireless-utility/

一言で言えば、/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -Iは、あなたが求めるものを提供します。また、root権限を必要としていないようです。

関連する問題