1

私は以下のようなbashスクリプトを持っています:

#!/bin/bash
for i in `cat domains` ; do
tag=$(echo -n $i" -   "; whois $i | grep -o "Expir.*")
reg=$(echo -n -"     "; whois $i | grep "Registrar:")
echo $tag $reg

sleep .5s
done;

ユーザーがドメインのリストに貼り付けることができるphpページが欲しいのですが、送信を押すと、bashスクリプトがドメインを処理して出力を返します。これは可能ですか?

4

3 に答える 3

4

可能ですが、ユーザー入力でコマンドを実行する場合は注意が必要です。またはバッククォートを使用exec()して、PHP からサーバー上でコマンドを実行できます。

ユーザーが入力したものが実際に URL であり、サーバー上で悪意のあるコマンドを実行するためのものではないことを確認してください。


例:

コードは次のようになります。

$output = array();
$urls = $_POST["urls"];
// perform necessary sanitation checks if needed
exec('/path/to/your/script '. implode(' ', $urls), $output);
echo $output;
于 2012-08-24T13:26:18.153 に答える
1

本当に bash スクリプトを実行する必要がありますか? 同等の PHP コードは次のとおりです。

foreach ($domains as $domain) {
  $domain = addslashes($domain);
  exec("whois '$domain'", $results);
  foreach ($results as $line) {
    if (preg_match('/Expir.*/', $line, $matches)) $tag = $matches[0];
    if (preg_match('/Registrar:/', $line)) $reg = $line;
  }
  echo $domain.' - '.$tag.' - '$reg."\n";
  usleep(500000);
}
于 2012-08-24T13:46:15.890 に答える
1

exec()はい、使用またはshell_exec()コマンドできます

于 2012-08-24T13:28:10.447 に答える