これはすでに回答済みとしてマークされていますが(別の投稿にすでに入力しているので、再利用することもできます):-)
言われているように、ほとんどの whois 機関は、24 時間にあまりにも多くのリクエストを行っていると判断した場合、トラフィックを抑制 (またはブロック) します。
代わりに、世界中のいずれかの whois プロバイダーの ftp サイトにログインして、データベースのさまざまな部分をダウンロードすることを検討することをお勧めします。それらすべてがこの公開データを利用可能にし、maxmind のような企業が IP に使用しているデータとまったく同じです。これは、誰もが自動化するこれらすべての「whois」コマンドの背後にあるのと同じデータです。
私は現在、次のシェル スクリプトを使用して接続する自分のサーバーの 1 つでこれを行っています (24 時間ごとに 1 回)。 .:
#!/bin/bash
rm -f delegated-afrinic-latest
rm -f delegated-lacnic-latest
rm -f delegated-arin-latest
rm -f delegated-apnic-latest
rm -f delegated-ripencc-latest
rm -f ripe.db.inetnum
rm -f apnic.db.inetnum
rm -f ripe.db.inetnum.gz
rm -f apnic.db.inetnum.gz
wget ftp://ftp.afrinic.net/pub/stats/afrinic/delegated-afrinic-latest
wget ftp://ftp.lacnic.net/pub/stats/lacnic/delegated-lacnic-latest
wget ftp://ftp.arin.net/pub/stats/arin/delegated-arin-latest
wget ftp://ftp.apnic.net/pub/stats/apnic/delegated-apnic-latest
wget ftp://ftp.ripe.net/ripe/stats/delegated-ripencc-latest
wget ftp://ftp.ripe.net/ripe/dbase/split/ripe.db.inetnum.gz
ftp -n -v ftp.apnic.net <<END
user anonymous anonymous@anonymous.org
binary
passive
get /apnic/whois-data/APNIC/split/apnic.db.inetnum.gz apnic.db.inetnum.gz
bye
END
gunzip ripe.db.inetnum
gunzip apnic.db.inetnum
次に、サーバーがクエリを実行するカスタムデータベース構造にファイルを解析するカスタム作成プログラムがあります。
すべてのサーバーが相互にデータをミラーリングするため、1 つのサーバーから完全なデータ セットを取得できるはずですが、そうでない場合は、上記のシェル スクリプトを変更して他のサーバーからデータをダウンロードするのにそれほど時間はかかりません。それらはすべて「ftp.????」に応答します。同じユニバーサルフォルダー構造を持っています。
ただし、独自のコードが含まれているため、パーサーについてはお手伝いできませんが、ファイル形式 (分割ファイルを取得する場合は特に) は、典型的な whois 出力に表示されるものと同じであるため、操作は非常に簡単です。
'ip-country' と呼ばれる google-code (ダウンロード スクリプトを入手した場所) にはパーサーがあります (私は思う)、独自の whois データベースを構築できるように設計されています。それは他のデータとも組み合わされます(したがって、私のパーサーは独自のものです)
このように独自のデータをダウンロードして処理することで、プロバイダーによって課された制限を回避できます。その結果、サーバーからクエリ サーバーに毎回リクエストを送信し続けるよりも、独自のデータ ストアをクエリする方がはるかに高速である可能性が高くなります。誰かが IP アドレスを入力します。