如何从Perl获得Apple Airport的速度?

Bro*_*olf 2 macos perl networking

我希望能够在Mac OS X下获得无线接口的速度.我有一个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
Run Code Online (Sandbox Code Playgroud)
#!/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";
Run Code Online (Sandbox Code Playgroud)

Pen*_*old 6

我很惊讶地发现这不是微不足道的.但是,快速应用Yahoo! 搜索找到指向"机场"命令行脚本的指针,看起来它会为您提供所需的答案.见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权限.