【问题标题】:Overriding hostname IP address in qtwebkit request在 qtwebkit 请求中覆盖主机名 IP 地址
【发布时间】:2010-12-23 12:08:09
【问题描述】:

我正在使用给定的主机名下载网页(使用 PyQt4/QtWebKit),但我想为该主机名使用预定义的 IP 地址。例如,我需要点击“http://www.mysite.com”,但使用 IP 地址 1.2.3.4 而不是实际解析的 IP 地址。这在 QtWebKit 中是否有可能?到目前为止,我已经尝试了几件事:

  1. 点击http://1.2.3.4/ 并发送“www.mysite.com”的“主机”标头。这几乎可行,但由于多种原因最终失败(我很乐意在此处详细介绍)。

  2. 使用全局 /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


【解决方案1】:

使用自定义网络访问管理器,例如(C++):http://ariya.blogspot.com/2010/05/qnetworkaccessmanager-tracenet-speed.html,这样您就可以“劫持”网络请求并将其“重定向”到其他域。

【讨论】:

    猜你喜欢
    • 2019-04-30
    • 2014-12-19
    • 2014-12-02
    • 2014-04-12
    • 2021-01-18
    • 1970-01-01
    • 2011-03-23
    • 2012-05-31
    • 2013-03-25
    相关资源
    最近更新 更多