ドメインが利用可能かどうかを確認するために WHOIS クエリを実行するものを作成したいと考えています。さて、そのための既製のスクリプトをかなり見つけましたが、ベースを指定する必要があるという点ですべて同じように見えます。次に、必要な拡張機能を選択すると、それが実行されます(たとえば、「test」と入力し、.com を確認すると、test.com が利用可能かどうかが確認されます)
しかし、私は少し他のことをしようとしています。私がやりたいことは、ユーザーがベース URL または完全な URL のみを入力したかどうかを確認し、それに応じて 1 つまたは複数のクエリを実行することです。例:
ユーザーが「test」と入力した場合、スクリプトで test.com、test.org、test.net などをチェックするようにします。ユーザーが「test.com」と入力した場合、スクリプトで test.com のみをチェックするようにします。 .
何を基に構築すればよいか本当にわかりませんが、Mike Nott の PHP Whois Scriptは問題ないようです。もちろん、提案はいつでも大歓迎です。
スクリプト フローは次のようになるはずです。
- ユーザーがクエリを入力
- スクリプトによるスペースのチェック
- スクリプトは、ユーザーがベースまたは完全なドメイン名のみを入力したかどうかを確認します (これを行う方法は、そこにドットがあるかどうかを確認することだと思います)
- ユーザーが完全なドメイン名を入力した場合、ベースと TLD を分離し、両方を変数に保存し、「ステータス」をどこかに保存します ($full = true/false)
- if ($full = true) {$base.com $base.net などの対応する whois サーバーを確認します};
- if ($full != true) {$tld の適切なサーバーを確認し、$base.$tld のサーバーを確認します}
- 出力結果
もちろん、これを行うスクリプトが既にある場合は、お知らせください。
編集:ご存知のように、簡単な if ステートメントなどは実行できますが、「ワークフロー」のステップ 3、4、5、および 6 は理解できない部分です。
編集 2:皆さん、ご回答ありがとうございます。マーカス・アダムの理論は確かに有効です。私のドメイン再販業者 (私がドメインを取得している業者) は、.co.uk のような第 2 レベルの TLD を提供していないので、それは問題ではありません。また、IDN もサポートしていません。
皆さんの回答から、explode関数を使ってドメイン名を区切るという結論に達しました。しかし、複数のドットに遭遇した場合、爆発はどうなりますか? 配列に別のエントリを追加するだけだと思いますが、それは問題を引き起こします。ユーザーが (たとえば) .co.uk で終わるドメインを入力すると、スクリプトは「co」を TLD として使用するためです。
ユーザーが「sub.domain.com」と入力すると、スクリプトは「sub」をベースとして、「domain.com」をTLD。
また、Marcus Adams さんは、whois サーバーが「利用可能」と表示されていても、それが利用可能であることを保証するものではなく、レジストラに問い合わせる必要があるとおっしゃいました。しかし、どうすればそれについて行くでしょうか?何か案は?
みんなありがとう :)