qrencodeを使ってWi-Fi接続用QRコードを作成する

qrencodeを使ってWi-Fi接続用QRコードを作成する

Clock Icon2024.10.25

アプリの開発のために、複数のiOSデバイスやAndroidデバイスを持ち歩いている。これらのデバイスでテストする必要があるが、セキュリティ上の理由から、APIサーバーによってはIP制限がかかっており、特定のネットワークからの接続のみに対応しているケースが多い。ネットワークによっては定期的にパスワードが変更されており、複数のデバイスでパスワードを手入力するのは時間がかかり、ミスも起こりやすい。

以前「Swift ConcurrencyとNEHotspotConfigurationでシンプルなWi-Fi接続を実装する」でも取り上げたように、iOS 11以降では特定のフォーマットのQRコードを読み込むことでWi-Fiに接続できる。

本記事では、qrencodeを利用して、Wi-Fiに接続可能なQRコードを作成する方法を紹介する。オフィスや自宅だけではなく、カンファレンス会場やホテル・カフェなどの店舗などで、ユーザーに Wi-Fiを提供したい場合などにもこの方法は役立つだろう。

Wi-Fi接続情報のQRコードフォーマット

Wi-Fiネットワークの設定をQRコードで提供する場合のフォーマットはある程度規格化されている。以下のような形式のQRコードをスキャンすると、デバイスをWi-Fiネットワークに接続できる。詳細はこちらを参照。

例: WIFI:T:WPA;S:mynetwork;P:mypass;H:false;;

フォーマット例:

  • WPA/WPA2 Personal: WIFI:T:WPA;S:MyNetwork;P:mypassword;H:false;;
  • WEP: WIFI:T:WEP;S:MyNetwork;P:mypassword;H:false;;
  • オープンネットワーク: WIFI:T:nopass;S:MyOpenNetwork;H:false;;

各パラメータの説明

パラメータ 説明
T 認証タイプ(例: WPA, WEP, WPA2-EAP, nopass)
S SSID(ネットワーク名)
P パスワード(認証タイプがnopassの場合は省略可能)
H 隠しSSIDかどうか(trueまたはfalse)
E EAPメソッド(WPA2-EAPの場合のみ)
A 匿名ID(WPA2-EAPの場合のみ)
I ID(WPA2-EAPの場合のみ)
PH2 フェーズ2メソッド(WPA2-EAPの場合のみ)

qrencodeを利用してQRコードを作成する

macOSの場合、Homebrewを使ってqrencodeをインストールできる。

brew install qrencode

次に、Wi-FiのSSIDとパスワードを確認する。たとえば、SSIDが"MyNetwork"、パスワードが"MyPassword"の場合、以下のようなテキストとなる。

WIFI:T:WPA;S:MyNetwork;P:MyPassword;H:false;;

このテキストを使って、qrencodeでQRコードを生成する。

qrencode -o wifi_qr.png "WIFI:T:WPA;S:MyNetwork;P:MyPassword;H:false;;"

実行すると、カレントディレクトリに wifi_qr.png というファイル名でQRコードの画像が出力されているだろう。スマートフォンでこのQRコードを撮影すれば、Wi-Fiネットワークに接続できる。

QRコードリーダーで撮影 Wi-Fiに接続
IMG_0017 IMG_0019

特殊文字を含むパスワードの場合はエスケープが必要

パスワードに特殊文字(例:!, ", :, ;, ,など)が含まれる場合、QRコードの生成時にエラーが発生することがある。これらの文字がQRコードのフォーマットで特別な意味を持つためだ。この問題を解決するには、特殊文字をエスケープする必要がある。

エスケープ方法

特殊文字をエスケープするには、バックスラッシュ(\)を使用してエスケープしたり、文字列全体を二重引用符(")で囲んだりする。たとえばパスワードがMy!Passwordの場合、以下のようにエスケープできる。

WIFI:T:WPA;S:MyNetwork;P:My\!Password;H:false;;

エスケープしたパスワードを使用してQRコードを生成するには、以下のようにコマンドを実行する。

qrencode -o wifi_qr.png "WIFI:T:WPA;S:MyNetwork;P:My\!Password;H:false;;"

QRコードにパスワードが含まれているため取り扱いには注意

QRコードにはSSIDとパスワードが含まれている。プライベートなWi-Fiネットワークに接続する際は、第三者に見られないよう注意が必要だ。使用後はQRコード画像を適切に管理することにも注意しよう。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.