【问题标题】:Whois server time outWhois 服务器超时
【发布时间】:2019-01-20 08:50:59
【问题描述】:

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

  • whois.nic.website
  • whois.nic.tech
  • whois.nic.name
  • whois.nic.xyz
  • whois.nic.store
  • whois.nic.site
  • whois.nic.online
  • whois.nic.design
  • whois.nic.fun
  • whois.nic.ink
  • whois.nic.host
  • whois.nic.art
  • whois.nic.name
  • whois.nic.coop
  • whois.nic.wiki
  • whois.nic.love
  • whois.nic.press
  • whois.nic.fans
  • whois.nic.realty
  • whois.nic.dhl
  • whois.nic.storage
  • whois.nic.kred
  • whois.nic.basketball
  • whois.nic.rent
  • whois.nic.tickets
  • whois.nic.gent
  • whois.nic.observer

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

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

感谢您的回答

【问题讨论】:

  • 不是因为它们受到验证码保护吗?
  • 如果您尝试从网络查询,是的,它受验证码保护。但我正在尝试使用端口 43 的 tcp 连接进行查询,但它总是超时
  • 为什么他们会在网站上有验证码,然后允许 TCP 查询?没有任何意义。
  • 所以你是说如果站点受到验证码保护,我不能进行 TCP 查询?所以我尝试了这个:我访问了 whois.net.kyoto,当我尝试进行 TCP 查询时它正在工作,并且在访问浏览器的链接时,我需要在点击“提交”之前输入验证码。
  • 验证码的全部目的是防止自动查询。如果他们打开一个更简单的方法,他们为什么还要尝试停止 Web 查询?您必须达到一些查询限制 - 我尝试了其中的几个服务器,它们都可以正常工作。

标签: whois


【解决方案1】:

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

但是:

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

速率限制是最可能的情况,并且很容易检测到,如果您从另一个 IP 地址尝试,甚至更好的是从另一个 IP 块尝试。 我现在只是尝试了一些并且它们可以工作,因此您的访问权限因任何原因受到速率限制/阻止(例如之前的请求量太大),或者您只是遇到了由于某种原因而无法使用的时间段(不太可能您访问了不同的注册表,即使您的大部分列表由 CentralNic 处理,也有一些由 Neustar 或其他人处理)。

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

还有关于

这也是我尝试远程登录服务器时总是失败的原因吗?

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

【讨论】:

    【解决方案2】:

    试试:

    $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);
    

    服务网址:http://akan.online/name.com

    【讨论】:

    • 欢迎来到 Stack Overflow!最好解释一下是什么导致了最初的问题,并解释你的答案是如何解决它的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    相关资源
    最近更新 更多