WHOISコマンドでドメインのリストを確認する

WHOISコマンドでドメインのリストを確認する

Linux のコマンド ラインを使用して、ドメイン名が使用可能かどうかを確認するバッチ ファイルまたは cronjob を設定したいと考えています。別のファイルを使用して、確認するドメインのリストを提供します。その後、1 時間あたり 30 回のチェックのみを実行し、ドメインが使用可能な場合にのみ、そのドメイン名を別のファイルに追加する必要があります。つまり...

  1. バッチファイルを作成する必要がありますか?
  2. バッチ ファイルにはどのようなコマンドを入力する必要がありますか?
    1. 既存のドメインリストを移動する
    2. それらのドメインが利用可能かどうか確認し、
    3. そのドメインを元のリストから削除し、
    4. 利用可能なドメインを「利用可能」リストに追加します。
  3. このコマンドを1時間ごとに20回繰り返します

PHP と cron を使用してこれを行う方法は正確にわかっていますが、「whois」コマンドを使用してこれを行う簡単な方法があるかどうかを知りたいです。私が行き詰まっているのはポイント (2) です。

答え1

それはそれほど難しくありません。

ドメイン のリストを確認し、見つかったらdomains.txtドメインを に追加します( に格納されているの戻り値を確認します)。available.txtgrep$?

次に、見つかったドメインをインプレース編集domains.txtで削除します。sed

#!/bin/bash

AVAILABLE=~/available.txt
DOMAINS=~/domains.txt

lockfile whois-script.lock

while read -r domain; do
  whois $domain | grep -qci "No match"
  if [ $? -ne 0 ]; then
    # found
    echo $domain >> $AVAILABLE
  fi
done < $DOMAINS

while read -r domain; do
  sed -i "/$domain/d" $DOMAINS
done < $AVAILABLE

rm -f whois-script.lock

注: BSD ではsed、次のコマンドを使用します。

sed -i "" "/$domain/d" $DOMAINS

このスクリプトを保存して、から呼び出すことができますcrontab

crontab -e

そして次のような行を追加します。

*/2 *   *   *   *   /path/to/script.sh > /dev/null

これにより、スクリプトが 2 分ごとに実行されます ( */2)。事前にドメインへのパスを調整してください。

答え2

なぜ面倒なことをするのでしょうか?必要なwhoisデータはすべて購入することができます。安く済むと言っているわけではありません(例えばhttps://alldomainsdb.com/) ですが、大変な作業を大幅に省くことができます。ただし、これは大量の whois データが必要な場合です。1 時間あたり 30 回のチェックで十分な場合は、先に進んでバッチ ファイルを作成してください。

関連情報