Macが接続しているWiFiのSSIDなどステータスバーを見れば一目瞭然なのですが、今回はSSIDをコードから取得する方法を調査しました。
ターミナルから調べる
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport --getinfo
という感じで、airportコマンドで調べられます。
agrCtlRSSI: -41 agrExtRSSI: 0 agrCtlNoise: -92 agrExtNoise: 0 state: running op mode: station lastTxRate: 1170 maxRate: 1300 lastAssocStatus: 0 802.11 auth: open link auth: wpa2-psk BSSID: XXXXXX SSID: LANLANLAN MCS: 9 channel: 36,80
出力のSSIDの部分、上記の例だとLANLANLANというLANに繋いでいることがわかります。
SSIDだけをトリムしたかったら、
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport --getinfo | grep " SSID" | tr -d " "
で、
SSID: LANLANLAN
となります。
Node.jsで調べる
さらに調査を進めると、これをいい感じにラップしてくれているnpmを見つけました。こちらを使った方が楽に実装できそうです。
const wifi = require('node-wifi'); wifi.init({ iface: null }); wifi.getCurrentConnections((error, currentConnections) => { if (error) { console.log(error); } else { console.log(currentConnections); } });
こんな感じのコードを書けば、
[ { signal_level: -44, quality: 112, security: 'wpa2-psk', security_flags: [], mac: 'XXXXXX', bssid: 'XXXXXX', ssid: 'LANLANLAN', channel: 36, frequency: 5180 } ]
こんな感じで取得できます。使いやすいです。
該当部分のコードを見ると、やはり、airportをつかっています。
試してませんが、WindowsやLinuxでも動作するようです。便利です。