iPadからプリンタを使う方法を考える
母がiPadに興味を持っているようなので、購入することになるかもしれないのだが、そこで父が「iPadからプリンタ使うってできるのか?」と疑問を投げかけてきた。
たしかに、母が使うのであればいろいろと「紙に出したい」場合がでてくるだろう。そうなったときにどうするか、なんとなく考えてみた。
とりあえず、考えられるプリンタで出力したい対象は以下のとおり
- ウェブページ
- 写真などの画像ファイル
- その他ファイル(電子書籍など)
まず1について。
すぐに考え付くのは、プリンタを使える別のマシンをwebサーバにして、urlを渡すとそのurlの内容をプリントアウトしてくれるCGIスクリプトを載せておき、iPad上のブラウザにそのスクリプトを叩くためのブックマークレットを置いておく、というやりかた。口で言うのは簡単だがそれに近いものすら作ったことがない。まあ、調べれば出来そうだというのはわかる。
上記のやり方ではiPadで表示されているページを別のマシンで開きなおすので、たとえばユーザ認証後しか表示できないページなどの印刷はできないが、そこは割り切るしかないだろう。
次に2だが、これはiPad/iPhoneアプリでそういうことが出来るものがあるようだ。しかし1のCGIスクリプトが書けるのであれば、同じような方法で画像もプリントアウトできるはず。それならアプリを買う必要すらない。取り合えずこれも出来そうだ。
3は、もう見当もつかない。これは出来なくてもしょうがないだろう。
そんなわけで、まずは1を実現するための方法を少し検証してみた。LL言語で私がかじったことがあるのはPerlだけなのだが、今回は何となくPHPを使いたいなと調べていたら、PHPのWindows用のモジュールでプリンタを扱うモジュールがあるのを発見。同じくWindows用でCOMコンポーネントを扱うためのモジュールもあるようなので、IEのCOMコンポーネントを用いてwebページをレンダリングして、それをプリンタで出力ということが(詳しく知らないがおそらく)出来そうだ。そうやって1を実現できてしまえば、2はレンダリングがいらない分、もっと簡単だと思われる。
IEのCOMコンポーネントを使うのも初めてだったりするのでうまく行くかわからないが、なんとなく方向性は見えた。暇を見つけて作ってみることにする。
暗号化
上記のような対策をしても、電波自体は飛んでいるので、その電波を傍受することは出来てしまう。傍受を防ぐためには、データを暗号化する必要がある。
暗号化の方式WEP・WPA・WPA2などがあるが、WEPは既に破ることが可能になってしまっている。WPA2か、最低でもWPAに対応した機器を選ぶ必要がある。
もちろん、親機・子機ともに同じ暗号化方式に対応していないといけない。
不正な接続を防止する機能
不正な接続を防止する機能としては、MACアドレスフィルタリング機能・SSIDステルス機能などがある。
MACアドレスとは、通信機器にあらかじめ付与されている固有の番号で、親機と通信できる子機をこのMACアドレスで判断するのがMACアドレスフィルタリング機能である。この機能を使うと、あらかじめ親機に登録したMACアドレスを持つ子機しか親機と通信できなくなる。
SSIDというのはLANそのもの自体のIDで、たとえば自宅で無線LANを使っている場合、隣の家も無線LANを使っていると、自分の無線LAN機器が隣の無線LANの電波を拾ってしまうことがよくある。その場合に、無線LAN機器はSSIDによって自分と同じLAN内の機器か否かを判別する。例えば、我が家のLANのSSIDが「WAGAYA」で、隣のLANのSSIDが「TONARI」だったとしたら、それぞれSSIDが「WAGAYA」に設定された機器同士、「TONARI」に設定された機器同士のみが通信するようにするわけだ。
しかし、「WAGAYA」の機器にも、「TONARI」というSSIDの電波を拾ったことだけはわかってしまう。そしてSSIDは設定で変えることができるから、「WAGAYA」の機器がSSIDを「TONARI」に変更すると、TONARIのLANがセキュリティ対策をまったくしていなかった場合、WAGAYAの機器がTONARIのネットワークにアクセスできてしまうのだ。
これを防ぐために、そもそもTONARIというSSIDの無線LANがあること自体を隠してしまうのがSSIDステルス機能である。これを使うとSSIDがTONARIに設定された機器以外からはTONARIのSSIDは見えない。
通信方式
通信方式には、IEEE802.11gなどと名前がついているが、無線LANの通信方式の名前は全部IEEE802.11までは共通でその後ろに付くアルファベット一文字が異なる。普通に使われている方式としてはn/a/g/bの4種類だろう。
通信速度はbが11Mbps、aとgが54Mbps、nはよく知らないが、wikipediaによると600Mbpsまでだが、現状では電波法の関係で300Mbpsまでらしい。どんな機器でも大抵はg/bには対応しているだろう。ただそれだけにgやbの無線LANを使っている人は多く、近隣にg/bを使っている人がいると、互いに干渉しあって通信速度が落ちてしまう。aはgやbとは使う周波数が違うので、g/bとaは互いに干渉しあわないので、近隣のg/bのLANに干渉を受ける可能性があるならaに対応した機器を選ぶとよいかもしれない。
nのことはよくわからないが、a/gの54Mbpsというのはあくまで理論値で、実際はその半分も出ないので、「それでは遅すぎる」という場合にはnを使うとよいかもしれない。
もちろん、親機・子機ともに同じ通信方式に対応していないと、その通信方式での通信は出来ない。
必要な機器の種類
親機と子機が必要。親機には無線LANルータと無線LANアクセスポイントがある。どちらを買うべきかは状況によって違うだろう。すでに有線のLANを組んでいて、それを無線に置き換えたりあるいは新規に追加する機器だけ無線LANでつないだりする場合は、ルータは有線用のものがあるだろうからアクセスポイントで良い。それ以外の場合は無線LANルータが必要。
無線LANルータを買う場合は、後述する無線LAN機器としての機能の他にDHCP機能があったほうが良い。無線でも有線でもLANにつながっている機器には「ローカルIPアドレス」という、電話で言えば内線番号のような番号が振られるのだが、DHCP機能はそのアドレスを自動で割り当ててくれる機能。これがあるとLANの設定が楽になる。
で、子機のほうはと言うと、カード型やUSBに接続するものなどいろいろなタイプがあるが、PCへのつなぎ方が違うだけで機能は同じである。自分のPCに繋げられるものであればどのタイプでも良い。
ノートPCなどでは最初から無線LAN通信機能が内蔵されているものもある。その場合は子機は不要。
無線LAN機器の選び方
昨日・一昨日とsilverlightのことを書いてきたが、仕事で調べたことを個人としてブログに書くのはこれ以上はいかがなものかという気がしてきたので、今日は別の話題で。
最近、別々のタイミングで2・3人に「無線LAN導入したいんだけど」的な質問を受けたので、機器の選び方でもまとめておく。
なるべく初心者にもわかりやすく書こうと思うので、少し説明が長くなるかもしれないがご容赦願いたい。