Wi-Fi接続に関する情報を見つける方法はありますか?どのネットワークにいつ接続する必要がありますか? proc/netでこの情報を探しましたが、何も見つかりませんでした。 (より具体的に言えば、私のAndroidデバイスでこの情報を探したいと思います。)
答え1
Linuxでは、接続履歴は明示的に保存されないため、ハードウェア情報とネットワーク情報を区別する必要があります。ハードウェア固有情報の例は次のとおりです。dmesg
、特定のハードウェアに関する情報を表示できます。つまり、リンクが開いているか閉じているかはわかりますが、特定のWiFiアクセスポイントの名前は記録されません。
設定はLinuxディストリビューションで使用するシステムによって異なります。 UbuntuやDeepinなど、多くのDebianベースのシステムはネットワーク管理者を使用しています。したがって、設定されたすべてのワイヤレス接続には、/etc/NetworkManager/system-connections
フォルダに適切なファイルがあります。 WiFi接続について話している場合、すべての接続のすべてのファイルにはアクセスポイントのパスワードとBSSIDが含まれます。ファイル名はESSIDです。同じESSIDを複数のBSSIDアクセスポイントで共有できるネットワーク(たとえば、私たちの大学は、他のルーターがある別の建物に同じWiFiアクセスポイント名がある場合) - アクセスポイント名は除外されます。デスクトップアプレットでもこの情報を表示できますが、この情報をすべて表示するにはrootアクセス権が必要です。他のネットワーク管理ユーティリティについては使ったことがないので言及できません。
ただし、少なくともネットワーク管理者がDBusプロセス間通信サブシステムを介して接続に関する情報を送信し、ユーティリティを介してdbus-monitor
スクリプトを作成できるため、これらのロギングを実装することが可能です。
このタイプのロギングを実装する際に考慮すべきもう1つのことは、DHCPリースです。使用されるシステムは、systemd
IPアドレスがリースされたゲートウェイに関する情報を出力に提供する必要があります。journalctl
バラより関連投稿参考用。
Androidについて具体的にお問い合わせの場合は、android.stackexchange.comにお問い合わせください。しかし、Androidにも同様のロギング慣行があると疑われます。つまり、デバイスにアクセスポイントがありますが、どちらか一方です。繰り返しますが、このタイプの情報には特定の場所があります。 ~によるとこの投稿:
CyanogenMod デバイスやその他の AOSP ROM では、/data/misc/wifi/wpa_supplicant.conf ファイルからインポートできます。
上記のファイルを含むAndroidのすべてのシステムレベルの情報にアクセスするには、ルートが必要です。
答え2
私はどのネットワークに接続していますか?
このiw
コマンドを使用すると、接続されたネットワークを取得できます。
iw dev <Interface> link
たとえば、
iw dev wlan0 link | grep SSID
またはdepriatedコマンドを使用してくださいiwgetid
。
いつ?
wpa_supplicant
次のイベントを確認してくださいsyslog
。
# cat /var/log/syslog | grep wpa_supplicant
e、g:rootアクセスでAndroidでtermux端末を使用する:
$ tsu
# logcat | grep -i wpa_supplicant