2017年7月21日金曜日

エレコム 無線LANルーター WRC-1167GHBK2-Iに日本語や絵文字のSSIDを設定してみた

日本語や絵文字のSSIDを設定したい!

先日買ってきたエレコム 無線LANルーター WRC-1167GHBK2-Iに日本語や絵文字などのUnicodeでSSIDを設定してみました。
なお、今回試したのはファームウェアバージョン 1.31です。
これ以外のバージョンでは上手く動かない場合があります。

普通では設定出来ないUnicodeのSSID
一部ルーターで設定出来る日本語や絵文字などのUnicodeのSSIDですが、残念ながらWRC-1167GHBK2-Iでは設定することができません。
入力して適用のボタンを押してもこのようにエラーが出てしいます。
また、パーセントエンコーディング(使用出来ない文字コードを%記号+αで置き換える文字表現)での設定も不可です。

最初にやり方の説明。小難しい話は後で。

まず最初にブラウザで普通に設定画面(今回はデフォルトのhttp://192.168.2.1/)を普通に開き、ユーザー名とパスワードを入力して認証を済まします

次に、2.4GHzのSSIDの場合は
http://192.168.2.1/wlbasic.html
5GHzのSSIDの場合は
http://192.168.2.1/wliNICbasic.html
アドレス入力欄に入れて直接設定画面を開きます

設定画面を開いた状態で再びアドレス入力欄に
javascript:function ok(){postForm("#ee",0);}
と入力するか、コピペしエンターキーを押します。
見た目は何も変わりませんが、これで入力チェック無しで設定できるようになります。
Google Chrome等でそのままコピペするとjavascript:の部分が消されてしまう事があります。その時はコピペ後にその部分だけ手入力してください。
かなり簡略化した処理なので、他にしてるチェックもスルーしてしまいます。もし、心配という方はちょっと長いですが下記のモノをコピペしてエンターキーで上書きしてください。

2.4GHzの場合

javascript:function ok(){if($("#SSID")[0].value===""){alert(showText(SSIDCanNotSetBlank));$("#SSID")[0].focus();return false}if(($("#SSID")[0].value==ssid1)||($("#SSID")[0].value==ssid2)||($("#SSID")[0].value==ssid3)){alert(showText(SSIDisSame));return false}postForm("#ee",0)};
5GHzの場合
javascript:function ok(){if($("#SSID")[0].value===""){alert(showText(SSIDCanNotSetBlank));$("#SSID")[0].focus();return false}if(($("#SSID")[0].value==ssid1)||($("#SSID")[0].value==ssid2)){alert(showText(SSIDisSame));return false}if($("#Chan")[0].selectedIndex==17||$("#Chan")[0].selectedIndex==18){if($("#Chan_BW")[0].selectedIndex==2){alert(showText(only2040));return false}}else{if($("#Chan")[0].selectedIndex==19){if($("#Chan_BW")[0].selectedIndex==1||$("#Chan_BW")[0].selectedIndex==2){alert(showText(only20));return false}}}postForm("#ee",0)};

あとは、SSID欄に好きな文字列を入力して、適用のボタンを押せば設定完了の画面が表示されて終わり。
ここで更新ボタンを押せば再起動が始まり、他の設定もしたい場合は戻るを押してください。

ちょっと小難しい技術的な話

設定画面のソースコードを見てみると、適用ボタンを押した時にSSIDのチェックが入ります。
Unicodeの設定ができない原因は、正規表現のマッチング処理で単語構成文字の[a-zA-Z_0-9]とスペース以外はアラートを表示し、エラーとして戻る処理になっています。
先程の手順では、このチェック処理を上書きして消しました。最初に示した簡単なやり方は、その前後の処理もまとめて消しているため、例えばマルチSSIDで設定した名前と同じモノを設定してしまっても通ってしまいますし、ブランクでも通ってしまいます。
その設定をした場合にどうなるかは試してないのでわかりません。おそらく、最悪の状態に陥ってもルーターの初期化で回復できるとは思いますが、回復できず故障で使えなくなる可能性もあります。

自己責任で!

お約束ですが、今回のSSIDにUnicodeを設定する方法は本人の自己責任で行ってください。
いかなる責任も当方は負いません。

SSID(Service Set Identifier)の文字コードって規格上どうなんだろ?って調べてみると、歴史的背景が理由で一般的にASCII文字が使われているため、正常に表示できるよう文字種チェックされているようです。ただ、そういう決め事があるわけではないようなので、Unicodeで設定できる機種もあるようです。

ということで、久々のITネタでした💻