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