C++ QWebView的IP别名(Qt/C+;+;)

C++ QWebView的IP别名(Qt/C+;+;),c++,qt,qtwebkit,qwebview,qtnetwork,C++,Qt,Qtwebkit,Qwebview,Qtnetwork,让我们看看你能否解释一下我的问题。[C++使用Qt5.2,使用QtCreator] 情况:我有一台电脑,有几个本地IP地址分配给同一个接口(IP别名)。对于每个本地IP,路由器在带宽、NAT、连接等方面具有不同的配置。我正在将这个本地IP切换集成到一些Qt应用程序,特别是一个使用QWebView提供良好浏览体验的应用程序 我需要的是:能够更改QWebView使用的本地IP以获取其请求 我所做的唯一一件事——只是一个补丁——就是使用STUNNEL通过不同的本地IP将本地主机端口映射到远程主机,并使

让我们看看你能否解释一下我的问题。[C++使用Qt5.2,使用QtCreator]

情况:我有一台电脑,有几个本地IP地址分配给同一个接口(IP别名)。对于每个本地IP,路由器在带宽、NAT、连接等方面具有不同的配置。我正在将这个本地IP切换集成到一些Qt应用程序,特别是一个使用QWebView提供良好浏览体验的应用程序

我需要的是:能够更改QWebView使用的本地IP以获取其请求

我所做的唯一一件事——只是一个补丁——就是使用STUNNEL通过不同的本地IP将本地主机端口映射到远程主机,并使用QNetworkProxy使QWebView将这些本地主机端口用作代理。问题是,出于某种原因,像这样代理显然会产生一些问题:用户无法看到几个YouTuve视频,只能看到静态背景和“发生错误”。使用NetworkProxyFactory::setUseSystemConfiguration(true)时不会发生这种情况,因为每个视频都可以完美地观看

问题是:如何使用Qt管理IP别名?如果这是不可能的,你知道为什么通过特技代理失败了吗?也许可以尝试其他透明隧道软件


感谢您的宝贵意见。提前谢谢

QWebView使用QNetworkAccessManager处理请求/响应。您可以覆盖的唯一有用的东西是虚拟对象

QNetworkReply * QNetworkAccessManager::createRequest(Operation op, 
const QNetworkRequest & req, QIODevice * outgoingData = 0) [virtual protected]
不幸的是,这对你的目的不是很有用

我也不认为持票人的事情会起作用

因此,根据您对该功能的需求程度,我将研究如何在QNetworkAccessManager中进行更改,以便能够传递允许的接口/ip地址列表,以便QTcpSocket it将自身绑定到指定的ip地址。。然后将此AccessManager设置为WebView


据我所知,QNetworkAccessManager不支持指定绑定地址

IIRC插件(如视频播放、flash等)可能会忽略路由/代理设置。这就是为什么flash和Co.可以取消匿名技术。他们可能会尝试使用全局设备路由,而不是应用程序范围的设置。这对于我的一个问题非常有帮助,谢谢@lgvidal Check:,,@KhaledAKhunaifer我真的不明白这些问题和这个有什么关系。也许最后一个有点,但没有真正的帮助。你是人类吗?