PHP

【PHP】exec()関数でwhois情報を取得

【PHP】exec()関数でwhois情報を取得

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には、コマンド実行結果の最後の行が格納されているはずです。
気になる方は、実際に実行して確かめてみてください。