使用 WHOIS 命令检查域名列表

使用 WHOIS 命令检查域名列表

我想使用 Linux 命令行设置一个批处理文件或某种 cronjob 来检查域名的可用性。我将使用另一个文件提供要检查的域列表。然后它每小时只能进行 30 次检查,并且只有当域可用时,它才必须将该域名添加到另一个文件中。所以...

  1. 我必须创建一个批处理文件吗?
  2. 批处理文件中必须包含哪些命令:
    1. 浏览现有域列表
    2. 检查这些域名是否可用,
    3. 从原始列表中删除该域名,并
    4. 将可用域添加到“可用”列表中。
  3. 每小时重复此命令 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

为什么要这么麻烦?现在你可以购买你想要的所有 whois 数据。我并不是说它会很便宜(例如https://alldomainsdb.com/)但它会为您节省很多工作量。但前提是您需要大量的 whois 数据。如果每小时 30 次检查就足够了,请继续制作批处理文件。

相关内容