If you are lucky enough that the desired interface is a separate physical (hardware) interface, you can do e.g. (web_view
is a QWebView*
):
QNetworkConfigurationManager config_manager;
QList<QNetworkConfiguration> configs = config_manager.allConfigurations();
bool found_interface = false;
QString desired_interface_name("eth1");
foreach (const QNetworkConfiguration &config, configs) {
if (config.name() == desired_interface_name) {
found_interface = true;
QNetworkAccessManager *network_access_manager = new QNetworkAccessManager;
network_access_manager->setConfiguration(config);
web_view->page()->setNetworkAccessManager(network_access_manager);
break;
}
}
if (!found_interface) {
//we failed to find the interface!
}
Again, this will not work if the IP is bound to a virtual interface part of one physical interface (e.g. eth1:1
, eth1:2
, etc). I am still looking for a solution for that case.