Мой компьютер имеет 2 интерфейса WLAN: один встроенный («Wi-Fi») и внешний адаптер («Wi-Fi 2»). Как я могу заставить мое приложение Qt устанавливать соединение с данной точкой доступа (AP) через второй интерфейс?
Я хочу убедиться, что первый интерфейс всегда используется для подключения к Интернету (мой маршрутизатор ISP), а второй интерфейс используется для подключения к стороннему устройству (которое представляет собой точку доступа Wi-Fi). .
Следующий код подключается к точке доступа (SSID = DeviceRouter). Но я не знаю, как принудительно использовать мой вторичный интерфейс (Wi-Fi 2).
// My target SSID and interface (let's assume this is an open AP)
QString ssid = "DeviceRouter";
QString interface = "Wi-Fi 2"; // I want to use my secondary interface
// Get all configurations
QNetworkConfigurationManager mgr;
mgr.updateConfigurations();
waitForSignal( &mgr, SIGNAL( updateCompleted() ), 20000 ); // implemented elsewhere
QList<QNetworkConfiguration> allConfigs = mgr.allConfigurations();
// Select the configuration matching my target SSID
bool connected = false;
foreach( QNetworkConfiguration config, allConfigs ) {
if( config.name() == ssid && config.bearerType == QNetworkConfiguration::BearerWLAN ) {
QNetworkSession s( config );
// How can I set the interface for the session?
s.open();
connected = w.waitForOpened( 30000 );
if( connected ) {
qDebug() << "You're connected on interface: " << s.interface().humanReadableName();
}
break;
}
}
Итак, вывод всегда You're connected on interface: Wi-Fi 2
.