カウンター

2013年9月28日土曜日

DynamicDNS

前回の記事で、Wake on Lanについて書いた時に、ちらっとダイナミックDNSに触れたのでそれについて書こうと思います。

Dynamic DNSとは、ちょこちょこ変動するグローバルIPを、固定のFQDNに紐づけてくれるサービスのことです。登録しておくと、一定のFQDNでインターネットから自宅にアクセスできます。私の目的はもちろん、自宅PCの電源ONのためです。

サービス自体はDynDNS等プロバイダは様々ですが、今回は私がやってみた無料のmyDNSのやり方を紹介します。

URL:http://www.mydns.jp/

「JOIN US」ページでユーザ登録を行うと、メールでIDとパスワードが届きます。再度上記ページに行き、送られてきたIDでログインして、左側メニューの"DOMAIN INFO"のページでドメイン名を登録します。

???.mydns.jp
???.mydns.bz
???.mydns.vc
???.mydns.tw
???.0am.jp
???.0g0.jp
???.0j0.jp
???.0t0.jp
???.pgw.jp
???.wjg.jp
???.server-on.net
???.live-on.net
???.keyword-on.net
???.dix.asia(NEW!)
???.daemon.asia(NEW!)

無料ドメインだと上記で選択できるようです。おこのみで。






















DomainのところにアクセスしたいFQDN、したの"A"って書いてあるとこはサブドメインの名前解決用です。サブドメインを利用しない場合は"*"でOKです。

次はIPの登録です。"IP ADDRESS DIRECT"というメニューで、自宅のグローバルIPアドレスを登録してください。グローバルIPアドレスは、確認くん(http://www.ugtop.com/spill.shtml)で見れます。
何もしてなければ基本「動的IP」なのでそれを選んでください。
IPv6のところはそのままでOKです。

以上で登録自体は完了です。
思った以上に簡単でした。

待ってたらそのうちアクセスできます。
確認は、コマンドプロンプトを開いて、

nslookup [登録したFQDN]

でグローバルIPが返ってきたらOKです。
数時間でiphone 3Gからもアクセスで切るようになりました。

一応これで使えるのですが、もう少し設定をしないといけません。
ダイナミックDNSって、動的なIPと固定のドメインを紐付けてくれるのですが、IPが変わった時にDNSサーバに教えてあげる必要があります。(IPが変わるタイミングはわかりません、プロバイダによると思います。感覚的には1週間に1度くらいでしょう。)

なので、定期的に教えてあげる仕組みを作りましょう。myDNSでは、POP3・FTP・HTTP等で特定のアクセス先にアクセスすればOKです。電源つけっぱなしで定期的にアクセスしにいくような仕組みにしたくなかったので、今回はログインのたびに自動でFTPアクセスする、というbatを作りました。

下記2つのファイルを作成して適当なところに保存しておいてください。

1.ftp.bat
==================================
ftp -i-s:ftpcmd.txt
==================================

2.ftpcmd.txt
==================================
open ftp.mydns.jp
[ID]
[パスワード]
==================================

の3行でOKです。スタートアップのディレクトリにショートカットを作ってあげればログインのたびに勝手に実行され、FTPでアクセスしてくれます。


以上です。

無料でできるのはすばらしーですね!

2013年9月25日水曜日

Wake on Lan

現在我が家では、自作パソコンのstation TVにてTV録画しております。

予約録画のためには、電源が入っている必要があり、
録画して撮りためておくのが好きなのでちょいちょい予約するのですが、
つけっぱなしにしておくと相方に怒られますwww

予約を入れてても、電源が入っていないと録画されず、
家に帰ったら、あーーー撮れてなかったー、ってのがちょいちょいあります。。。

時間になったら勝手に電源が入ればいいのになあ。
→誰か知っていたら教えてください。。。


時間になったら電源オン、は無理そうなので、

出先でiphoneから自宅のPCの電源をつける!!!

という目的とします。
そこで、(天下り的ですが)前から話を聞いていた「Wake on Lan」を試してみることに。
wake on lan(wol)とは、リモートでPCのスイッチをオンにする、という機能です。
この時起動命令用に送信されるパケットを、”マジックパケット”と言います。

幸い、録画PCではwolに対応していたので下記設定
をして利用できる状態にしました。

・BIOS設定
・デバイスマネージャでNICのプロパティ→WOLをオン

まずは同セグメント(LAN内)の端末から起動させてみます。
起動は、Wake up On Lan tool・MagicBoot等のツールをダウンロードして、

・IPアドレス
・サブネットマスク
・MACアドレス

を設定します。IPアドレスは起動したいPCのIPでもいいですが、LANのブロードキャストアドレス(例えば、192.168.0.255)にすると、確実にいけます。

iphoneでもできます。私は下記アプリをインストールしました。(どっちでもOKでした)
・RemoteBoot
・mWOL

結構サクッとできました!うれしいですね。


本題はここからです。
当初の目的は、インターネット経由で家のPCの電源をつける、ということでした。


元々LAN内を想定した技術のようなので、これが中々厄介です。

色々調べたのですが、下記4つの方法ができそうだとわかりました。

1.ルータからWOL(VPN経由)
2.ルータからWOL(直アクセス)
3.l同セグメントの別端末からWOL
4.ルータからポートフォワード


最初に書いておきますが、インターネット経由で家のネットワークにアクセスするには、
グローバルIPが必要です。
通常のプロバイダ契約の方もグローバルIPが当然あるのでできますが、
通常契約の場合グローバルIPは頻繁に変わりますので、別途グローバルIPを取得するか、ダイナミックDNSを利用するか、という方法があります。

ダイナミックDNSは、myDNS等が無料で利用できるので、おすすめです。




では、改めて1個ずつ見ていきます。

1.ルータからWOL(VPN経由)

うちのルータは、バッファローのWHR-G301Nなのですが、
WOL機能がありました!!!
ルータの管理画面から操作するようです。

同ルータのPTPPサーバ機能を利用してVPNでアクセスし、
そこで管理画面→WOL、でできました。


2.ルータからWOL(直アクセス)

こっちは、管理画面にアクセスするのにインターネットから直でアクセスする、
というものです。
他のルータは知りませんが、バッファローのルータの管理画面の認証は
ベーシック認証という、古びた認証でリスクが高いです。。。(ID,PWが暗号化されない)

やめましょう。。。


3.同セグメントの別端末からWOL

こちらは、同セグメントにつけっぱなしの別PCがいて、
そいつを操作してマジックパケットを送信してもらうものです。

色々やり方はあると思いますが、
Webサーバとして構築しておいて、外部ネットワークから

http://[グローバルIP]/wol.cgi

にアクセスしたらcgiがマジックパケットを送る、というやり方があるのかな、と思います。
家でPCをつけっぱなしにできないので、この選択肢は残念ながら取れません。。。

4.ルータからポートフォワード

今回、これをやりたくて色々試行錯誤しました。 
このやり方では、ルータでポートフォワードの設定をしておいて、
ルータ経由で当該PCにマジックパケットを送付する、というものです。

具体的には、ルータ上で「このポートに来たパケットは、あのIPのPCに送ってね!」
という設定をしておきます。














↑設定はこんな感じです。
192.168.11.2は、電源を付けたいPCのプライベートIPです。

ここで大きな問題が、、、

イーサネットでは、MACアドレスを見てパケットを対象PCに送信します。
もうちょっと言うと、LAN内ではIPアドレスからMACアドレスに変換し、当該MACアドレスにパケットを送信します。その変換を実行するためのMACアドレスとIPアドレスの紐づけである、「arpテーブル」ってのを各機器で持っています。

この場合はルータの持っているarpテーブルですが、対象のPCの電源が消えてしばらくすると(5分程度で)消えてしまいます。(仕様にもよりますが、このルータはそうっぽい)
つまり、電源が消えて時間が経ったPCは、ルータから見てどこにいるかわかんないわけです。

「あのPCに送ってね!」ではできないようですので、
じゃなく「すべてのPCに送ってね!」とします。

つまり、ブロードキャストです。
ポートフォワードの設定で、ブロードキャストアドレス(例えば192.168.0.255)にフォワードする設定を入れましょう!!!


ルータの管理画面にて設定しようとしたら、
「そのアドレスは設定できません。」















ちーん。

できるルータもあるみたいですね。(NEC製ルータ等)
残念です。。。

2013年9月13日金曜日

おすすめ情報検索システム

久しぶりの更新です。

今日は自作システムの「おすすめ情報検索」を紹介したいと思います。
このシステムでは、あるキーワードに関連するキーワードを教えてくれます。
例えば、”iphone”というキーワードを入力すると、”docomo”と返したりします。

原理的にはツイッターのタイムラインから関連ワードを拾ってきてるだけです。


使い方はいたって簡単で、ツイッターで

@recTopic

というアカウントに、キーワードをリプライするだけです。

ご自由にお使いください。

なお、pythonで実装しています。
#日本語の扱いに苦労しました。。。


ご興味がある方は、下記サイトをご参考いただければ。
http://d.hatena.ne.jp/killinsun/20130606/1370542828


※注意
twitterの制約上1分につき1回しか稼働できません。。。
1分に複数のリプライが来ると、1リプライしか拾えません。。。