我想创建一个执行 WHOIS 查询以查看域是否可用的东西。现在,我找到了很多现成的脚本,但它们似乎都是一样的,你需要指定基础,然后选择你想要的扩展,它会这样做(例如,输入'test',检查.com,它会检查test.com是否可用)
但是,我正在尝试做一些其他的事情。我希望它做的事情是检查用户是否只输入了基本 URL 或完整 URL,然后相应地执行一个或多个查询。例子:
如果用户输入“test”,我希望脚本检查 test.com、test.org、test.net 等。如果用户输入“test.com”,我希望脚本检查 test.com .
我真的不知道要建立在什么基础上,但Mike Nott 的 PHP Whois 脚本看起来还不错。当然,建议总是受欢迎的。
现在我猜脚本流程应该是这样的:
- 用户输入查询
- 脚本检查空格
- 脚本检查用户输入的只是一个基本域名还是一个完整的域名(我猜想解决这个问题的方法是检查那里是否有一个点)
- 如果用户输入了完整的域名,则将基础域名和顶级域名分开并将它们存储在变量中并将“状态”存储在某处($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 这样的二级 TLD,所以这不是问题。他们也不支持 IDN。
根据各位的回答,我得出的结论是explode函数是用来分隔域名的。但是,遇到多个点会爆炸怎么办?我猜它只会在数组中添加另一个条目,但这会导致问题。因为如果用户随后输入(例如)以 .co.uk 结尾的域,则脚本会将“co”作为 TLD。
在数组中检查超过 2 个字符串也不是一个选项(我认为),因为如果用户然后输入“sub.domain.com”,脚本将“sub”作为基础,“domain.com”作为顶级域名。
另外,Marcus Adams,您说如果whois 服务器显示“可用”,这并不能保证它可用,我必须查询注册商。但是我该怎么做呢?有任何想法吗?
多谢你们 :)