主机名重复验证

时间:2017-07-19 02:25:32

标签: php validation dns

我有一个表单,我允许用户将他的主机添加到数据库 - 它可以通过IP地址和域名来完成。

我的问题是 - 我想防止重复的主机:当有一个主机域添加例如。在地址1.2.3.4的DNS A记录中,用户基本上可以更改它,例如。到4.3.2.1,然后添加另一个1.2.3.4主机(按IP)并将域A记录切换回1.2.3.4

我当然可以在使用gethostbyname提交期间验证我的数据库中的所有主机名,但是gethostbyname会阻止DNS查找,因此我不想将其循环到大型数据集上以防止错误运行时。

有没有解决方案?

1 个答案:

答案 0 :(得分:1)

这是你无法控制的。如果要确保不存在任何重复项,则只能在数据库中接受其中一个。您仍然可以启用域的输入,但只需立即解决它们并仅保存IP。否则,如果不检查所有重复项,则无法100%确定没有重复项。如果你不这样做,你将不得不转发旧数据,这不太准确。如果有时候重复的条目发生并不是什么大问题,那么最好每天使用一个cron作业或其他工具来检测它们一次。

您应该首先定义应用程序所需的最低精度,然后检查您拥有的资源数量。之后,您可以计算出当前资源可以达到的准确度,然后检查它是否足够。 (假设您有未使用的资源,如果您必须为所有使用的资源付费,那么您应该只使用您需要的最低资源。)

有关如何优化脚本的一些想法可以找到here。我也对一个好的和快速的解决方案感兴趣,我可能会稍后写一个优化的脚本并将其链接到这里,但目前我没有时间。