CLI上から接続している無線LANのSSIDを取得する

概要

接続している 無線LAN、有線LANの接続状況によってい実行するかどうかを判断するスクリプトを書こうと思い調べたのでまとめる。

  • nmcliを使う
  • フィールドの形で取得できる
  • CentOS7,ubuntu16.04などNetwork Manager が使用できれば使える。

/proc/net/wireless

/proc/ 以下のファイルからSSIDを取得できればいいと思い調べてみた。

その結果’/proc/net/wireless’から接続しているデバイス名と無線強度などの情報を得ることができた。

$ cat /proc/net/wireless

Inter-| sta-| Quality | Discarded packets | Missed | WE

face | tus | link level noise | nwid crypt frag retry misc | beacon | 22

wlp4s0: 0000 70. -14. -256 0 0 0 0 91 0

しかし、必要であるSSIDについては取得できなかったため次の方法を探した。

iwconfig

このコマンドはワイヤレスインタフェースの設定を行うコマンドである。

これに何も引数を与えないとその時のワイヤレス・ネットワークの設定が表示される

$ iwconfig

wlp4s0 IEEE 802.11 ESSID:”myAP”

Mode:Managed Frequency:2.432 GHz Access Point: 88:57:EE:7B:3C:40

Bit Rate=150 Mb/s Tx-Power=20 dBm

Retry short limit:7 RTS thr=2347 B Fragment thr:off

Power Management:on

Link Quality=70/70 Signal level=-14 dBm

Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0

Tx excessive retries:0 Invalid misc:120 Missed beacon:0

これで目的である接続しているSSIDは取得できた。

しかし、有線LANに接続しているかはわからないし、cutやgrepなどでパースしづらい。

そこでいろいろ調べたところask ubuntu にてnmcliを用いた方法があった。

nmcliを用いた方法

nmcli はNetworkManager をcliより設定するためのコマンドである。これには -t|–terse オプションにより処理しやすい形式で出力される。また、 -f | –fields オプションにて出力する項目を選ぶことができる。

$ nmcli -t -f state,type,device,connection dev status

connected:wifi:wlp4s0:myAP

unavailable:ethernet:enp0s25:–

unmanaged:loopback:lo:–

これによりパースしやすい形式でネットワークの状態を取得できる。

参考

ask ubuntu How do I find out the name of the SSID I’m connected to from the command line?

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください