北大の図書館や一部の校舎では,学内 wifi (elms-g) を利用できる.本稿ではこれへの接続を自動化する方法を書く.
私は wifi への接続に wicd-cli を使っている.本稿に登場する option の意味をあらかじめ書いておくと,
-n NETWORK, --network=NETWORK
-p NETWORK_PROPERTY, --network-property=NETWORK_PROPERTY
-S, --scan
-l, --list-networks
-c, --connect
-y, --wireless
のとおりである.
elms-g の飛んでいる場所で
$ wicd-cli -ySl
とすると,
# BSSID Channel ESSID
0 00:1D:73:C2:AB:50 1 elms-g
1 00:1D:73:C2:AB:53 1 eduroam
2 00:1D:73:C2:AB:52 1 elms-x
のように表示される.
次いで,
$ wicd-cli -ycpelms-g
としてやれば,elms-g としてやれば,elms-g に接続できる.実は,
$ wicd-cli -ySl
の手順は不要である.当該の場所に着いて PC を開いたら,即座に
$ wicd-cli -ycpelms-g
としてやれば,elms-g に接続できる.
このようにして快適な elms-g 生活をしてきたが,error が出てうまくいかないことがあると気づいた.そういうときに
$ wicd-cli -ySl
としてやると,
# BSSID Channel ESSID
0 10:6F:3F:E5:C6:C3 1 eduroam
1 10:6F:3F:E5:C6:C0 1 elms-g
2 10:6F:3F:E5:C6:C2 1 elms-x
3 00:1D:73:F8:D4:30 6 elms-g
4 00:1D:73:F8:D4:32 6 elms-x
のように表示される.どうやら,"elms-g" と名乗る電波が複数あって,wicd-cli に "elms-g" と指定してやったのではどの電波なのか同定できない,というのが原因のようだ.ならば,番号で指定してやろう.
$ wicd-cli -ycn1
としてやったら無事に接続できた.
elms-g の番号を調べる → その番号で接続する
の流れを自動化してやろうと思い,下のように script を書いた:
wave_list = `wicd-cli -ySl`
wave_list.each_line do |line|
if line.match(/elms-g/) then
$num = line.split("\t")[0]
end
end
command = "wicd-cli -ycn" + $num
system(command)
elms-g と名乗る電波の番号を取得して,そのうち最も大きいものを $num に格納して,その番号の電波に接続する,という script である.
elms-g に接続したあと,LAN への login が必要になる.これを自動化する方法は
に記した.私は .zshrc に
alias wie='ruby $HOME/connect_elms-g.rb; ruby $HOME/elms-g_login.rb'
と書いてあるので,図書館等で PC を開いたら
$ wie
とすることですぐに net を利用できる.便利である.