【问题标题】:How best to validate that a URL is on the public internet?如何最好地验证 URL 是否在公共互联网上?
【发布时间】:2009-02-20 21:23:48
【问题描述】:

我想验证一个主机名/IP 地址是否在公共互联网上;也就是说,在合理的范围内,无论我从哪里访问它,我都会得到相同的响应(显然这无法保证。

我想排除 localhost、127.0.0.1、私有 IP 范围内的任何内容以及任何具有无效 TLD 的内容。

我是否遗漏了我应该检查的其他内容?

对于有效 TLD 列表,还有比 http://data.iana.org/TLD/tlds-alpha-by-domain.txt 更好的列表吗?

【问题讨论】:

    标签: validation url


    【解决方案1】:

    如果您对 DNS 或 /etc/hosts 没有严格控制,则有效的 TLD 仍可能解析为本地地址,因此请先解析然后按 IP 范围排除(10.0.0.0/8、172.16.0.0/12、 192.168.0.0/16, 169.254.0.0/16, 127.0.0.0/8) 最好。

    您的 TLD 列表是最新的。

    【讨论】:

      【解决方案2】:

      IANA 是域名信息的官方来源,因此您无法获得更好的列表 - 或者至少,您无法获得更权威的信息。

      【讨论】:

        【解决方案3】:

        最终的验证难道不是为您创建一个本地网络列表(例如,在您自己的防火墙后面),如果不是,请尝试连接主机?如果您可以连接并且它不是本地的,那么您就没有理由期望互联网上的任何其他位置都无法连接。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-10-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多