
システムで接続されているWi-Fi信号の品質を確認するには、Wi-Fiへの接続に使用するデバイスインターフェイスの名前がsudo iwconfig wlp6s0
どこにあるかを確認する必要があります。wlp6s0
runコマンドを使用しないと、出力にリンク品質や信号レベルは表示されませんsudo
。ただし、たとえばWi-Fiをnmcli
使用せずにWi-Fiの信号強度を取得できます。sudo
nmcli dev wifi
を実行すると、出力に次の行に示すようにシステムコールをsudo strace iwconfig wlp6s0
使用することがわかりました。ioctl
strace
ioctl(3, SIOCGIWSTATS, 0x7ffd1bd7e960) = 0
strace nmcli dev wifi
ただし、Wi-Fi信号強度や関連情報を取得するために同じシステムコールが使用されていないことがわかりました。
nmcli
を使用せずにWi-Fi信号強度を表示するために必要な情報を取得する方法を知りたいですsudo
。
編集:strace
両方の出力:
フル出力
strace nmcli dev wifi
:https://pastebin.com/NdqBfC8Wフル出力
sudo strace iwconfig wlp6s0
:https://pastebin.com/5w0Grwze
答え1
D-Busを使用してネットワーク管理者サービスに接続でき、ネットワーク管理者サービスはrootとして実行されています。
~ ps -o pid,user,cmd -C NetworkManager
PID USER CMD
894 root /usr/sbin/NetworkManager --no-daemon
答え2
はいいいえ/sbin/iw wlan0 station dump
ルートなしで信号強度を表示するには、ネットワーク管理者を起動します。
を実行すると、strace
NETLINKソケットが作成され、そのソケットからデータを取得するように見えます。詳しくはソースを読んでみてくださいiw
。