きゃらりこ日誌

2015年06月

雑想

電子工作熱 ふたたび高まる!

眠れないので、久しぶりに日記を書いてみる。
最近、電子工作熱が急に高まってきていて、新たな趣味となりそうな予感。
と言っても、市販のキットや他人のブログに掲載されている回路を真似したり、回路と呼ぶにはおこがましい簡単な配線をする程度なんですが、そのおかげでいまさらながら学校の授業・実習でやった内容が理解できるようになったり。
……って、遅すぎるわ!
やはり、必要に迫られないとやる気って起きないんですね。

いろいろな小物を作るたびに部品を買い集めてるんですが、今考えれば無駄遣いだったなぁという余分に買った部品が引き出しに一杯。
こういう失敗のおかげで、次回から失敗しないようになる訳ですが、何かの時に使えるかも!って思ってしまって、捨てるに捨てられないんですよ。
まぁ、8割がた使う機会はないんですがね。
[ 秋野よう | この記事のURL ]


サイト管理 / 技術

自宅内からグローバルアドレスを取得する方法を考えてみただけ

最近、自宅内にプライベート用のサーバを立てて遊んでいるんですが、そろそろ外出先からのアクセスできるようにしようかということで、DDNSを導入することにしました。
以前、DD-WRTを入れて遊んでたルータにDDNSのIPアドレス更新用シェルスクリプトを組み込んで遊んでいたのを思い出し、それを流用しようとしたのですが当時のメモが見当たらない&実機を引っ張り出してスクリプトを確認するのが面倒くさかったので、改めて作ることに。
さて、どうやってグローバルIPアドレスを取得方法しようか?となったわけですが、いくつか手段を考えてみました。


1. 外部ウェブサービスから取得
DDNSサービス提供元では、アクセス元のIPアドレスを返してくれるCGIを、利用者向けに提供しているので、これをwgetするのが簡単&確実です。
Windows用のDDNSクライアント DiCEも、この仕組みで動いてます。
公式で提供していないときは、どこかのDDNSサービス用のCGIをこっそり使わせてもらうって手もありますが……
固定IPを持ってるレンタルサーバに自分専用のCGIを設置するって方法が妥当ですね。


2. Tracerouteから取得
Tracerouteの出力の中にグローバルIPアドレスが出てくるので、これを使えば楽です。
またTracerouteの相手先は実在する外部サーバを指定します。
相手先の負荷が気になるなら(ごく僅なので気にしなくてもいいかも)、大量のアクセスをさばくのはお手の物で、安定性も非常に高いDNSサーバとかNTPサーバに。
ちなみにTracerouteは通信経路にある各ネットワーク機器に対して強制的にICMP Time Exceedを出させることで通信経路の機器の情報を取得しているため、TTLを制限してやれば外部ネットワーク機器との無駄なやりとりは減ると思います。


3. ルータの設定画面から取得
外部へのネットワーク負荷を極限まで減らすには、これが一番。
しかし管理画面に入るためにはパスワードがかけられていたり、またスクレイピングが面倒だったり。
またSSHやTelnetでログインすると、ログイン後の画面にグローバルIPを表示してくれるルータもあるようですが、私が使用しているルータではログインパスワードは非公開なので無理でした。


4. メールのメールヘッダから取得
昔、DDNSを使わずに自宅のグローバルアドレスを知ろうと画策していた頃、DVD/HDDレコーダのメール録画予約機能を利用して確認していたことを思い出しました。
当時使っていた東芝のレコーダは、録画予約やHDDの残り容量をメールで問い合わせると、1時間に1回返信してくれるという機能があり、返信メールのメールヘッダには送信元のグローバルアドレスが書かれるため、そこから自宅のグローバルアドレスを読み取っていました。
問題は外部のメールサーバを使うことになるため安定稼働が保証できないこと、更新周期が1時間に1回になること、手間をかけすぎているということ。
こんなまどろっこしい方法は、他に取る手段がなくなった時くらいしか使い道がないです。


ということで、一番簡単な 1.の方法を取ることに。
[ 秋野よう | この記事のURL ]


過去ログ:
2004年 03月 04月 05月 06月 07月 08月 09月 10月 11月 12月
2005年 01月 02月 03月 04月 05月 06月 07月 08月 09月 10月 11月 12月
2006年 01月 02月 03月 04月 05月 06月 07月 08月 09月 10月 11月 12月
2007年 01月 02月 03月 04月 05月 06月 07月 08月 09月 10月 11月 12月
2008年 01月 02月 03月 04月 05月 06月 07月 08月 09月 10月 11月 12月
2009年 01月 02月 03月 04月 05月 06月 07月 08月 09月 10月 11月 12月
2010年 01月 02月 03月 06月 12月
2011年 01月
2015年 06月 07月 08月 09月 10月 11月 12月
2016年 01月 02月 03月 04月 05月 06月 07月 08月 09月
2017年 01月 02月