iwconfigなどのコマンドを実行する代わりに、fsのファイルから現在アクティブなWi-Fiカードインターフェイスを取得する方法はありますか?

iwconfigなどのコマンドを実行する代わりに、fsのファイルから現在アクティブなWi-Fiカードインターフェイスを取得する方法はありますか?

さまざまなツールを実行して現在アクティブなネットワークカードインターフェイスを取得する方法はいくつかあります。そのうちの1つは次のとおりです。iwconfig

私は同じ結果を得る方法を探しています。ただし、可能であればLinuxのファイルシステムにアクセスする必要があります。他のデータを取得するために、すでに別のプロセスが実行されている.NETアプリケーションがあります。これらの外部プロセスをできるだけ減らす必要があります。

答え1

回答で提案されている内容を自動化するスクリプトが必要な場合に備えて、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
}

答え2

この情報は以下から入手できます。

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

結果updown

すべてのインターフェイス名を一覧表示します。

ls /sys/class/net

ワイヤレスネットワークカードであることを確認してください。

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

/proc/sys/net/ に関するドキュメント

カーネルファイル

関連情報