【发布时间】:2010-07-06 05:08:44
【问题描述】:
我希望我的 Python 脚本通过脚本中指定的 IP 访问 URL,而不是通过域的默认 DNS。基本上,我想要在 /etc/hosts 文件中添加一个条目,但我希望更改仅应用于我的脚本,而不是全局应用于整个服务器。有什么想法吗?
【问题讨论】:
我希望我的 Python 脚本通过脚本中指定的 IP 访问 URL,而不是通过域的默认 DNS。基本上,我想要在 /etc/hosts 文件中添加一个条目,但我希望更改仅应用于我的脚本,而不是全局应用于整个服务器。有什么想法吗?
【问题讨论】:
这是否有效取决于远端站点是否使用基于 HTTP/1.1 命名的虚拟主机。
如果不是,您可以根据@Greg 的回答简单地将 URL 的主机名部分替换为他们的 IP 地址。
但是,如果是,您必须确保正确的 Host: 标头作为 HTTP 请求的一部分发送。没有它,虚拟主机 Web 服务器将不知道要为您提供哪个站点的内容。请参阅您的 HTTP 客户端 API(Curl?)以查看是否可以添加或更改默认请求标头。
【讨论】:
您可以使用显式 IP 号码通过将其嵌入 URL 来连接到特定机器:http://127.0.0.1/index.html 等效于 http://localhost/index.html
也就是说,使用 IP 号码代替 DNS 条目并不是一个好主意。 IP 比 DNS 条目更频繁地更改,这意味着如果您对地址进行硬编码而不是让它正常解析,您的脚本更有可能被破坏。
【讨论】: