Perlにて サーバーのIPアドレスを取得

Perlにて IPアドレスを取得したく調べたところ、
IO::Interfaceという便利なものを見つけました。
http://d.hatena.ne.jp/naoya/20080110/1199944996

ですが、標準モジュールでなく、PPMを探しても見つからず。

自分でビルドしてみましたが、Windows XP環境のためか、ビルドエラー。
勉強不足で解決方法がわからなかったのです。
そこで、愚直に Ipconfig コマンドを活用。
環境に依存しますので、汎用性のないプログラムですが、
目的を達成できました。

ポイント
ipconfig コマンドの結果を 取得
‘‘(バッククォータ)で囲むと、外部コマンドを実行できる。そのまま変数に代入できる。
@ipdata01= `ipconfig`;

結果から 必要な部分のみ抽出
substr やlength 、index などテキスト加工 関数を活用

ソース
#########################################################
#ipconfig Run & GET
my @ipdata01= `ipconfig`;

# all length
my $alllength= length $ipdata01[7] ;
#”:” length
my $target = ‘:’;
my $coronlength= 2 + index $ipdata01[7] , $target ;

my $getlength = $alllength – $coronlength;

my $ipaddress01= substr $ipdata01[7] , $coronlength, $getlength-1;

#########################################################

泥臭い方法でも実現できる、Perl。

参考、ppmのzipアーカイブ
http://aspn.activestate.com/ASPN/Downloads/ActivePerl/PPM/Zips

講座 開催予定

この記事を書いた人

ブログコーチ 大東 信仁

ニックネーム ものくろ。株式会社 あみだす 代表取締役、Web&Blogコーチ、WordPressが得意。