- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:1行の抜き方とシステム情報の収集の仕方)
1行の抜き方とシステム情報の収集の仕方
このQ&Aのポイント
- MacOSXでPerlスクリプトを使用して、任意の行のみを取り出す方法とシステム情報を一括で取得する方法を教えてください。
- また、IPアドレス、ドメイン名、ドメインサーバのIPアドレス、デフォルトゲートウェイ、ネットワークポート、MACアドレス、自IPアドレス、自サブネットを一気に抜き出すスクリプトコードも教えてください。
- よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>任意の行のみを取り出す 全行を配列に読み込んで、任意行を指定する open FH '<file.txt'; @lines = <FH>; close FH; $str = $lines[12]; #12行目を取り出す システム情報は%ENVに入っています。 print '<ul>'; foreach ( keys %ENV) { print "<li>$_: $ENV{$_}<BR></li>\n"; } print '</ul>'; perlが動作しているOSの環境変数ではなく、ネットワーク上の他のOSなどのデータのことを云っているのなら、 個々のアドレス情報からネットワーク関連関数やモジュールで地道に探索するしかないのでは? ん?コマンド? cgi実行中のことではなく、コマンドライン実行での話なのでしょうか?
その他の回答 (1)
- hrm_mmm
- ベストアンサー率63% (292/459)
回答No.2
>>ifconfig en0 >と打てば、返ってきます。 OSのコマンドのことでしたか。 perl からはシステムコマンド実行をそれぞれ行うことになるかと思います。 // backticks or qx// print `ifconfig en0`; print qx|ip/ subnet/ dns/|; http://fleur.hio.jp/perldoc/mix/pod/perlop.html#X`STRING`
質問者
お礼
再度のご返答ありがとうございます。 ご記入頂きましたサイトを見ていまして、 なんとか出来そう・・? です。 コマンドをたたく以外にないんですね・・w ありがとうございました!
補足
ご返答ありがとうございます。 先に全部を配列に読み込んでから、あとで 抜き出したい行を指定すれば良いのですね。 勉強になりました。 システム情報なのですが、 抜き出したい情報は、今動かしているパソコンの システム情報になります。 ですので、 「perlが動作しているOSの環境変数」で良いと 思うのですが、 教えて頂きましたENVを使用するコードを実行すると <ul><li>HOME: /Users/admin<BR></li> <li>__CF_USER_TEXT_ENCODING: 0x1F5:1:14<BR></li> <li>SECURITYSESSIONID: 790550<BR></li> <li>SHLVL: 1<BR></li> <li>TERM_PROGRAM: Apple_Terminal<BR></li> <li>OLDPWD: /Users/admin/Desktop<BR></li> <li>_: /usr/bin/perl<BR></li> <li>TERM_PROGRAM_VERSION: 133<BR></li> <li>PATH: /bin:/sbin:/usr/bin:/usr/sbin<BR></li> <li>SHELL: /bin/tcsh<BR></li> <li>TERM: xterm-color<BR></li> <li>PWD:/Users/admin/Desktop/perl_chonpro<BR></li> <li>USER: admin<BR></li> となり、なんだかシステム情報を抜き出している ようなのですが、 192.168.3.1 255.255.255.0 ppp.star-net.com 192.168.1.1 ・・・ のような形では表示されないのでしょうか? >ん?コマンド? cgi実行中のことではなく、 >コマンドライン実行での話なのでしょうか? cgiのような高級なコードではないです。 単なるスクリプトになります。 「コマンド」と書きましたのは、 例えば、 「今動かしているパソコンのIPを調べる」には、 >ifconfig en0 と打てば、返ってきます。 また、 「参照先DNS」を知りたければ、 >less /etc/resolv.conf と打てば表示されます。 単発でコマンドを叩けば、 ip/ subnet/ dns/ ・・・は収集出来るのですが、 それらを一発で表示させる スクリプトを作りたいと思っています。 出来ますでしょうか? 長々とすみません。