【问题标题】:python fully qualified domain namepython完全限定域名
【发布时间】:2020-04-06 02:11:28
【问题描述】:

我正在使用 Python 3.7 套接字来获取 FQDN,完全限定的域名。 它适用于某些人,例如

socket.getfqdn('indiana.edu')
'www.indiana.edu'

对其他人无效,例如

socket.getfqdn('google.com')
'lga34s18-in-f14.1e100.net'

在浏览器中使用 lga34s18-in-f14.1e100.net 会出现 404 错误,找不到 url。

好的,google.com 只是一个例子。这是另一个:

socket.getfqdn('www.finastra.com')
'ec2-52-51-237-24.eu-west-1.compute.amazonaws.com'

显然,使用 url 'ec2-52-51-237-24.eu-west-1.compute.amazonaws.com' 不起作用。所以他们在 AWS 上托管他们的网站,但为什么 socket 将其返回为 FQDM,'finastra.com' 不是 FQDM?

【问题讨论】:

  • 你想做什么? google.com 是完全合格的,为什么要把它推到 getfqdn 中? getfqdn 可能是为了解析本地名称,即getfqdn("router') == "gateway.mynetwork"
  • 好的,一个公平的问题。我想要做的是解决一些我必须 FQDN 的 IP 地址。我不能分享这些地址,我只能说它们应该解析为一些“简单”的域名,如 google.com 或 finastra.com,但解析为类似于我为这两个域名得到的东西。一旦它发生在这些 ip 上,我决定尝试 google.com 或 finastra.com 并发现它们也会产生一些有趣的 FQDN。我希望这能解释我想要做什么。

标签: python fqdn


【解决方案1】:

socket.getfqdn()calls socket.gethostbyaddr()(如in docs所述)来解析地址。 socket.gethostbyaddr() 将发出 A 类 DNS 请求(如果域不在您的 hosts 文件中),该请求将解析为 google.comwww.finastra.com 的 DNS 配置。

在浏览器中使用 lga34s18-in-f14.1e100.net 出现 404 错误,找不到 url。

这是因为您的浏览器发送了一个Host header,其中填充了来自 URL 的主机名。单个网络服务器可以提供来自不同主机的内容。例如,以下请求不会返回 404 Not Found

curl ec2-52-51-237-24.eu-west-1.compute.amazonaws.com -H 'Host: www.finastra.com'

删除-H 'Host: www.finastra.com' 将导致请求发出Host: ec2-52-51-237-24.eu-west-1.compute.amazonaws.com 标头并返回404 Not Found

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-11
    • 2014-01-25
    • 2014-05-28
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    相关资源
    最近更新 更多