Wifi

有沒有辦法從 fs 中的文件獲取目前活動的 wifi 網卡介面 - 而不是通過執行 iwconfig 等命令?

  • November 17, 2021

我知道有幾種方法可以通過執行不同的工具來獲取目前活動的網卡介面,其中一種是iwconfig

如果可能的話,我正在尋求一種實現相同目標的方法——但僅通過訪問 linux 的文件系統。我有一個 .NET 應用程序,它已經執行不同的程序來獲取不同的數據——我需要盡可能減少這些外部程序。

此資訊可從以下渠道獲得:

cat /sys/class/net/$IFACE/operstate 

結果是updown

列出所有介面名稱:

ls /sys/class/net

要檢查它是否是無線網卡:

[[ -d "/sys/class/net/$IFACE/wireless" ]] && echo "WiFi card"

/proc/sys/net/ 的文件

核心檔案

添加到 GAD3R 的答案中,以防萬一有人需要腳本來自動化答案推薦的操作(我為此目的編寫的一個片段):

#!/bin/bash
function getFirstActiveNIC()
{
   interfaces="/sys/class/net/*"
   for interface in ${interfaces};
       do 
           if [ $(cat "${interface}/operstate") = "up" ];
           then
               echo "$(basename ${interface})"
           fi
   done
}

引用自:https://unix.stackexchange.com/questions/677782