Web ログファイルに多くのアクセス情報が記録されているが、高速処理のため、クライアントのホスト名ではなく、その IP アドレスが書き込まれているのがふつう。

しかし、IP アドレスのままだとわれわれ人間には理解しにくいので、本 Perl スクリプトは IP アドレスを本来のホスト名 (bal4u.dip.jp のようなもの)に変換表示してくれる。

スクリプト名 ip2host.pl    ソース

使い方  perl ip2host.pl < access_log

変換結果が標準出力に出てくるので、リダイレクトしてファイルに落とすことも可能。

ホスト名の逆引きができない場合は、IP アドレスのままとなる。また、変換の対象は行先頭の IP アドレスのみ、ほかのフィールド(内容)はそのまま残る。

実際の1例 (ログファイルの1行)、行先頭の IP がホスト名に変わる。

220.12.28.59 – – [22/Aug/2004:04:49:35 +0900] “GET / HTTP/1.1” 304 – “-” “Mozill

a/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.432

2; MSIECrawler)”

YahooBB220012028059.bbtec.net – – [22/Aug/2004:04:49:35 +0900] “GET / HTTP/1.1”

304 – “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705;

.NET CLR 1.1.4322; MSIECrawler)”

● もともとの話については、 ここ を参照されたい。

DDNSサーバに対する、IP 更新プログラム。
ベースとなったのが、お世話になっている ipServer.net サイト内の Perl スクリプト

<使用環境>
  OS Linus Fedora Core / Centos
  Perl  Ver 5.8.1以上
  DDNSサーバ www.ipServer.net

<使用するディレクトリ、およびファイル>
  ディレクトリ /usr/local/ddns/
  プログラム本体 ddns.pl
  データファイル ddns.dat 現在使用中のIP及び前回更新時刻の記録データ
  履歴ファイル ddns.log いままでの更新履歴
  データファイル及び履歴ファイルはプログラムが必要に応じて自動作成する。

<プログラム本体>
  Perl スクリプト ddns.pl
  注:アカウント名、ドメイン名、パスワードの3項目はご自分の環境に合せること!
  ちなみに、データファイルおよび履歴ファイルの中身はこちら。
  データファイル ddns.dat
  履歴ファイル ddns.log

<使い方>
  cron で Perl スクリプト ddns.pl を、10分間隔で走らせるといいだろう。必要でなければ、DDNSサーバに対する更新は実際、やらないのだ。
  ただし、日付が変わると強制更新を必ずやることになっている。ときたま声かけないと、DDNSサーバがこちらの存在を忘れるかもしれないから (というのは冗談)。
  履歴ファイル ddns.log の各行に書かれている言葉は、Updateが不可欠な更新; Dailyがただの生存連絡を意味する。

IP更新プログラムの良し悪しはサーバとしての信頼性を大きく左右するので、ご利用の際に十分吟味して欲しい。