Python脚本的备用主机/IP
我想让我的Python脚本通过脚本里指定的IP地址来访问一个网址,而不是通过这个网址的默认域名解析。简单来说,我想实现的效果就像是在我的/etc/hosts文件里添加一条记录,但我希望这个改动只对我的脚本有效,而不是对整个服务器都生效。有没有什么好主意?
2 个回答
0
你可以通过在网址中直接使用一个具体的IP地址来连接到特定的机器,比如说 http://127.0.0.1/index.html
和 http://localhost/index.html
是一样的意思。
不过,直接用IP地址而不是域名(DNS)并不是个好主意。因为IP地址变化的频率比域名要高得多,如果你把地址写死在代码里,可能会导致你的程序出错,而让它正常解析域名则可以减少这种风险。
2
这个是否有效,取决于对方网站是否使用了HTTP/1.1的基于名称的虚拟主机。
如果没有使用,你可以直接把网址中的主机名部分换成他们的IP地址,就像@Greg说的那样。
但是如果他们使用了虚拟主机,你就需要确保在HTTP请求中发送正确的Host:
头信息。没有这个信息,虚拟主机的服务器就不知道该给你哪个网站的内容。你可以查看你的HTTP客户端API(比如Curl),看看是否可以添加或修改默认的请求头。