Whois 服务器超时

Whois server time out

我想问一下为什么每次尝试向这些whois服务器请求时总是出现超时错误:

当我尝试搜索那些 TLD 的 whois 服务器时,这些 whois 服务器都是基于 IANA 和 ICANN 的。

这是我尝试获取 .tech 的 whois 数据时的屏幕截图 link 所有其他 whois 服务器 return 相同的超时错误。

感谢您的回答

根据 ICANN 的要求,所有这些 gTLD 都需要有一个端口 43 whois 服务器。

但是:

  • 他们都是限速的,因为他们都被滥用了
  • 即使他们现在由于 GDPR 和 ICANN 临时解决方案而回复,输出也可能会被显着编辑,特别是对于联系人部分(输出格式也是 ICANN 的要求,因此注册管理机构几乎没有地方可以偏离)
  • 如评论中所述,如果我没记错的话,这些 whois 服务器也需要根据 ICANN 要求在 IPv6 下可用,但 IPv6 连接(在您端和服务器端)可能与 IPv4 有很大不同。

速率限制是最有可能的情况,并且很容易检测到,如果您从另一个 IP 地址尝试,甚至更好地从另一个 IP 块尝试。 我现在刚刚尝试了一些并且它们有效,所以要么你的访问率是 limited/blocked 出于任何原因(比如之前的请求量太大)或者你只是遇到了由于某种原因它们不可用的时期(更少可能因为您访问了不同的注册表,即使您的大部分列表由 CentralNic 处理,也有一些由 Neustar 或其他人处理)。

由于您的问题在现阶段并不是一个真正的编程问题,也许通过更多地解释为什么您需要查询,似乎大量查询所有这些 whois 服务器,可以为您提供更好的建议.

还有关于

Is this also the cause whenever I try to telnet the servers, it always fails?

whois 是一个非常简单的协议,基本上只是通过 TCP/43 进行交换,所以使用 whois 客户端或在端口 43 上进行 telnet 是完全一样的,并且会根据任何速率限制获得相同的结果或您当时正在点击的访问被阻止。

尝试:

$whoisserver = 'whois.verisign-grs.com';
$domain = 'name.com';
$port = 43;
$timeout = 10;
$fp = @fsockopen($whoisserver, $port, $errno, $errstr, $timeout) or die("Socket Error " . $errno . " - " . $errstr);
fputs($fp, $domain . "\r\n");
while(!feof($fp)){
    $out .= fgets($fp);
}
fclose($fp);

服务URL:http://akan.online/name.com