我使用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 not found。
好的,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‘是行不通的。所以他们在亚马逊网络服务上托管他们的网站,但是为什么socket把它作为FQDM返回,'finastra.com‘不就是FQDM吗?
发布于 2020-04-06 21:44:56
socket.getfqdn() calls socket.gethostbyaddr() (如上所述的in docs)来解析地址。socket.gethostbyaddr()将发出A型域名解析请求(如果域名不在您的主机文件中),该请求将解析为google.com或www.finastra.com配置的任何域名。
在浏览器中使用lga34s18- in -f14.1e100.net的
会给出404错误,找不到url。
这是因为您的浏览器发送了一个Host header,其中填充了URL中的主机名。单个can服务器可以提供来自不同主机的内容。例如,下面的请求不会返回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报头并返回404Not Found。
https://stackoverflow.com/questions/61052000
复制相似问题