【发布时间】:2011-04-06 20:00:40
【问题描述】:
我想激活当前的网络接口并连接到互联网。
实际上,我可以检查网络是否已启动,以及是否不是环回网络。
foreach(QNetworkInterface interface, QNetworkInterface::allInterfaces())
{
if (interface.flags().testFlag(QNetworkInterface::IsUp) && !interface.flags().testFlag(QNetworkInterface::IsLoopBack))
foreach (QNetworkAddressEntry entry, interface.addressEntries())
{
if ( interface.hardwareAddress() != "00:00:00:00:00:00" && entry.ip().toString().contains("."))
items << interface.name() + " "+ entry.ip().toString() +" " + interface.hardwareAddress();
}
结果:
"en1 3.3.3.52 D4:9A:20:61:1F:72"
"vmnet1 192.168.169.1 00:50:56:C0:00:01"
"vmnet8 192.168.210.1 00:50:56:C0:00:08"
事实上它可以工作,但我也发现了 VM 接口。 而且我只想选择WLAN接口和以太网接口。
【问题讨论】:
-
您发布的代码块有什么问题?
-
@Adam:我猜他不知道接口是否处于活动状态。
-
如果您只需要 WLAN 和以太网接口,使用 VPN 的人会感到失望。通常这是他们与互联网的唯一连接。
-
我想我的问题是:定义“连接到互联网”(比你想象的更难回答)
标签: c++ qt network-interface