Posted at

北大の学内 wifi (elms-g) への接続を自動化する.(新字新かな)

More than 3 years have passed since last update.

北大の図書館や一部の校舎では,学内 wifi (elms-g) を利用できる.本稿ではこれへの接続を自動化する方法を書く.

私は wifi への接続に wicd-cli を使っている.本稿に登場する option の意味をあらかじめ書いておくと,

wicd-cli -h

-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 を書いた:


connect_elms-g.rb

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 が必要になる.これを自動化する方法は

北大の wifi への login を自動化

に記した.私は .zshrc に

alias wie='ruby $HOME/connect_elms-g.rb; ruby $HOME/elms-g_login.rb'

と書いてあるので,図書館等で PC を開いたら

$ wie

とすることですぐに net を利用できる.便利である.