【发布时间】:2010-12-23 12:08:09
【问题描述】:
我正在使用给定的主机名下载网页(使用 PyQt4/QtWebKit),但我想为该主机名使用预定义的 IP 地址。例如,我需要点击“http://www.mysite.com”,但使用 IP 地址 1.2.3.4 而不是实际解析的 IP 地址。这在 QtWebKit 中是否有可能?到目前为止,我已经尝试了几件事:
点击http://1.2.3.4/ 并发送“www.mysite.com”的“主机”标头。这几乎可行,但由于多种原因最终失败(我很乐意在此处详细介绍)。
使用全局 /etc/hosts 设置。这不起作用,因为它很难自动化,我将同时进行多个下载。
有没有办法在 python 或 PyQt4/QtWebKit 中覆盖与主机名关联的 IP 地址?
这对我来说很重要。任何帮助都将不胜感激。
【问题讨论】:
-
详细了解#1,因为不清楚你为什么不首先直接连接到
http://1.2.3.4。 -
当然。核心解决方案是直接连接到 IP 地址,但发送带有适当主机名的 Host 标头。问题#1:你如何处理重定向。您是继续发送预定义的主机标头还是按照原样遵循重定向?如果您继续发送相同的主机标头,我会遇到无限重定向循环。使用后者,您会丢失尝试访问的 IP 地址。问题 #2:其他 DNS 查找(例如 www.mysite.com 与 mysite.com)会覆盖特定的 IP 地址。我意识到这很复杂:(
-
您能否详细说明您要解决的问题?特别是,我看不出为什么解决方案 #2 对您不起作用,您似乎遇到了一个非常具体的客户端和服务器组合的问题。请详细说明。
标签: python pyqt pyqt4 qtwebkit