UbuntuでAUの公衆無線LAN(Wi-fi)に接続する

手持ちのUbuntuパソコンで、AUのWifiに接続する方法を調べていて、先ほど上手くいって無事に接続できたので、方法を残しておきます。

# 接続したいパソコンのMACアドレスをAUに登録する
まずは自分のパソコンのMACアドレスを調べて、AUに「このMACアドレスで接続させてください」とおねがいする必要があります。

## MACアドレスの確認
MACアドレスは以下のコマンドで確認できます。

```zsh:コマンドプロンプト
ifconfig
```
![zsh_003.png](https://qiita-image-store.s3.amazonaws.com/0/67427/517e0170-280d-3641-9fbd-d193d1c52086.png)

確認したMACアドレスを大文字にして、コロン(```:```)を取り除いた文字列をメモしておきます。

私のMACアドレスを例にすると、以下のようになります。

```text
ifconfigで確認したMACアドレス
00:1e:68:19:c9:c6
↓
メモしておくMACアドレス
001E6819C9C6
```

## MACアドレスをAUに伝える
以下のURLをブラウザで開きます。
\*\*\*MACアドレス\*\*\* の部分を、自分のMACアドレスに置き換えてください。

```
https://auwifi-signup.auone.jp/su2/?{"mac_addrs":["***MACアドレス***"],"manufacturer":"Windows","model":"7","request_type":"0"}
```

私のMACアドレスを例にすると、以下のURLになります。

```
https://auwifi-signup.auone.jp/su2/?{"mac_addrs":["001E6819C9C6"],"manufacturer":"Windows","model":"7","request_type":"0"}
```

上のURLを開くと、AU IDのログイン画面に飛ばされます。
自分のAU IDでログインしてください。
AU IDがわからない方は、[AU ID パスワードの確認・変更](http://www.au.kddi.com/support/mobile/procedure/id/au-id/)を確認してください。

![au IDログイン - Mozilla Firefox_004.png](https://qiita-image-store.s3.amazonaws.com/0/67427/796d302a-5303-a3cd-13fe-d9c59ed6f5ee.png)

上の画面からログインすると、携帯電話に確認のためのCメールが届きます。Cメールに記載されたリンクを開いて、ログインを許可すると、先ほどログインしたページに以下のような文字列が表示されます。

```
{"code":"N22","device_num":"01","max_device_num":"04","passwd":"********","user_id":"********"}
```
上の```********```のところに、パスワードとユーザIDが載っています。これを控えておきます。

以下のJavaScriptの```userid```と```pass```を、上で取得したユーザIDとパスワードに置き換えます。
置き換えたら、ブラウザに貼り付けられるように一行にします。改行コードを空文字に置換して、テキストファイルに保存しておきます。

```js
javascript: (function(){
  var userid = '***USERID***';
  var pass = '***PASS***';

  var authURI;
  var domain = document.domain.substring(document.domain.length - 9);

  if(domain == 'wi2.ne.jp'){
    var de = document.documentElement.innerHTML;
    if(de.indexOf('WISPAccessGatewayParam') < de.indexOf('LoginURL')){
      authURI = de.split('LoginURL')[1].replace(/(^\s+)|(\s+$)|(<)|(>)|(\/$)/g, '');
    }else{
      return;
    }
  }else if(domain == '.kddi.com'){
    authURI = 'https://' + location.host + '/smartlogin';
  }else{
    return;
  }

  if(userid.substr(userid.length - 3) != '@au'){userid += '@au';}
  var ce = function(en, ev){
    var inp = document.createElement('input');
    inp.type = 'hidden';
    inp.name = en;
    inp.value = ev;
    return inp;
  };
  var f = document.createElement('form');
  with(f){
    method = 'post';
    action = authURI;
    id = 'authBookmarkletForm';
    appendChild(ce('UserName', userid));
    appendChild(ce('Password', pass));
  }

  document.body.appendChild(f);
  document.getElementById('authBookmarkletForm').submit();

}())
```

#AU Wifiにログインする
ログインするためのユーザIDとパスワードを控えたら、パソコンを持って、公衆無線LANが使えるお店に行きます。
パソコンを立ち上げて、ネットワークを選択します。鍵マークのついていない```Wi2premium```が、目的のネットワークです。たぶん。

![範囲を選択_006.png](https://qiita-image-store.s3.amazonaws.com/0/67427/595b51a4-31f1-54a8-c450-43553e422c6b.png)

ネットワークを選択したら、ブラウザを立ち上げて適当なページを開きます。
「なんとかネットワークへようこそ」みたいなページが表示されて、ログインを求められていると思います。
ここで先ほど用意したJavaScriptのコードをアドレスバーに貼り付けます。
画面が切り替わって、「なんとかサービスに申し込む」みたいなページが表示されていたら成功です。英語のページが表示されていたら、画面右上にある「日本語」のリンクをクリックすると日本語になります。

# 参考
[au wifi の認証方式について](http://d.hatena.ne.jp/RobinEgg/20120617)
[au Wi-Fi および wi2 系公衆無線LAN接続用 Bookmarklet](http://d.hatena.ne.jp/RobinEgg/20120626/p1)