欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

macos 脚本 得到 电脑 附近的 wifi 扫描附近的 wifi AG chatgpt 有大用 有大大用

/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s | awk '{print $1}'  | sed '1d'   #仅获取第一列 ,移除第一行(是列名)


在 macOS 上,你可以使用 airport 工具或 networksetup 命令来获取附近的 Wi-Fi 网络信息。以下是几种方法:


方法 1:使用 airport 工具(需管理员权限)

  1. 查找 airport 工具路径
    通常位于 /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport

  2. 扫描附近 Wi-Fi
    运行以下命令:

    bash
    sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s
  • -s  ( scan )表示扫描附近的 Wi-Fi 网络。

  • 需要输入管理员密码(sudo 权限)。

  • 输出示例

    SSID BSSID             RSSI CHANNEL HT CC SECURITY
    Home 12:34:56:78:90:ab -65  11      Y  US WPA2(PSK)
    Cafe aa:bb:cc:dd:ee:ff -80  6       Y  US WPA2(Enterprise)
    

  • 方法 2:使用 networksetup 命令

    1. 列出所有 Wi-Fi 接口(通常为 en0 或 en1):

      bash
      networksetup -listallhardwareports | grep -A 1 "Wi-Fi"
    2. 扫描附近网络

      bash
      networksetup -setairportpower en0 on  # 确保 Wi-Fi 开启 networksetup -getairportnetwork en0   # 获取当前连接的 Wi-Fi
    • 注意:networksetup 不能直接列出所有附近的 Wi-Fi,但可以结合系统报告。


    方法 3:通过系统报告(无需 sudo

    运行以下命令获取详细的 Wi-Fi 环境信息:

    bash
    system_profiler SPAirportDataType
    • 输出包含当前连接和扫描到的网络详情(如信号强度、信道等)。


    脚本示例

    将以下脚本保存为 scan_wifi.sh,并运行 chmod +x scan_wifi.sh

    bash
    #!/bin/bash # 方法 1: 使用 airport 工具扫描 AIRPORT_PATH="/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport" if [ -f "$AIRPORT_PATH" ]; then    echo "=== 附近的 Wi-Fi 网络 (via airport) ==="    sudo "$AIRPORT_PATH" -s else    echo "错误: airport 工具未找到。" fi # 方法 2: 通过系统报告获取 echo -e "\n=== 系统报告中的 Wi-Fi 信息 ===" system_profiler SPAirportDataType | grep -E "SSID|BSSID|RSSI|Channel|Security"

    注意事项

    1. 权限问题airport 需要 sudo 权限。

    2. Wi-Fi 开关:确保 Wi-Fi 已开启(可通过菜单栏或命令 networksetup -setairportpower en0 on)。

    3. 兼容性:不同 macOS 版本可能略有差异,建议测试确认。

    如果需要进一步处理(如解析 JSON 输出),可以结合 jq 工具或 Python 脚本。


    普通分类: