exec()関数でwhois情報を取得する方法
今回は、PHPでwhois情報“を取得する方法を紹介します。
といっても、方法は簡単で、exec()関数でlinuxのwhoisコマンドを実行させるだけです。
Linuxのwhoisコマンドを使えば、結構簡単にプログラムを組めます。
whoisコマンドは以下で調べてください。
http://itpro.nikkeibp.co.jp/article/COLUMN/20070926/283006/
サンプルコードはこんな感じです。
<?php
//ドメイン名もしくはIPアドレスを設定
$domein = "ドメイン名もしくはIPアドレス";
$ary = array();
//whoisコマンドを作成
$comand = "whois -h whois.jp {$domein}";
//whoisコマンドを実行
exec($comand, $ary);
foreach($ary as $whois){
//ブラウザに出力
echo $whois . "<br>";
}
?>
順番に説明していきます。
まず、exec()関数でwhoisコマンドを実行させています。
そして、その結果を配列で受け取り、あとはforeachで回すだけです。
exec()関数は、外部コマンドを実行させる場合に利用します。
高頻度ではないですが、時々利用する機会もあるので、覚えておくようにしましょう。
exec()関数については、もう少し詳しく説明します。
exec()関数について
引数について
exec()関数は、LinuxやWindowsなどのコマンドを実行してくれる関数です。
第1引数~第3引数まで指定することができます。
■第1引数:実行するコマンドを指定(必須)
■第2引数:変数を指定することで、コマンドの全ての出力結果を行ごとに配列で格納
■第3引数:コマンドのステータスが格納
例えば、「exec(“ls -al”, $ary)」を実行すると、$aryには、出力結果の全ての行が配列で格納されます。
もし、第2引数を指定しない場合、実行結果の1行目のみが戻り値として返ってきます。
例:$ret = exec(“ls -al”);
また、第3引数に指定した変数には、実行結果のステータスが返されます。
戻り値
exec()を実行すると、戻り値として”実行結果の最後の行“が返ってきます。
例えば、「$ret = exec(“ls -al”);」を実行すると、変数$retには、コマンド実行結果の最後の行が格納されているはずです。
気になる方は、実際に実行して確かめてみてください。