windows开发

您所在的位置:网站首页 如何获取wifiip地址 windows开发

windows开发

2023-06-12 12:43| 来源: 网络整理| 查看: 265

windows平台下获取有线和无线的ip地址比在Linux中麻烦一些,下面介绍一种利用QT自带接口实现IP地址的获取。

接口介绍

QT自带的网络接口类:QNetworkInterface ,下面介绍一下类相关成员及功能

公共类型 1、接口标志 enum InterfaceFlag { IsUp, IsRunning, CanBroadcast, IsLoopBack, IsPointToPoint, CanMulticast } 详细信息如下: QNetworkInterface::IsUp 0x1 网络接口激活 QNetworkInterface::IsRunning 0x2 网络接口已经被分配资源 QNetworkInterface::CanBroadcast 0x4 支持广播 QNetworkInterface::IsLoopBack 0x8 环回接口 QNetworkInterface::IsPointToPoint 0x10 点对点接口 QNetworkInterface::CanMulticast 0x20 支持多播 2、接口类型 enum InterfaceType { Unknown, Loopback, Virtual, Ethernet, Wifi, Ieee1394 } 常用类型: QNetworkInterface::Ethernet 3 有线接口类型 QNetworkInterface::Wifi 8 无线接口类型 常用公共接口 1、获取当前的flag QNetworkInterface::InterfaceFlags flags() const 2、获取当前的MAC地址 QString hardwareAddress() const 3、获取当前的接口类型 QNetworkInterface::InterfaceType type() const 4、获取地址实体列表 QList addressEntries() const 5、是否有效 bool isValid() const 6、获取index int QNetworkInterface::index() const 静态成员接口 1、获取所有接口信息 QList allInterfaces() 2、根据索引获取接口信息 QNetworkInterface interfaceFromIndex(int index) 3、根据名称获取接口信息 QNetworkInterface interfaceFromName(const QString &name) 4、根据index获取接口名字 QString interfaceNameFromIndex(int index) 实现原理

通过 allInterfaces()接口获取所有的接口信息列表,遍历列表,根据flag和type识别出激活状态下的wifi和eth的IP地址。

实现代码 #include #include #include #include #include #include void getipaddress() { QString text; QTextStream out(&text); QList ifaceList = QNetworkInterface::allInterfaces(); for (int i = 0; i continue; } if (var.humanReadableName() != "Wi-Fi" && var.humanReadableName() != "Ethernet") { continue; } // 读取一个IP地址的关联信息列表 QList entryList = var.addressEntries(); for(int j = 0; j getipaddress(); int a; scanf("%d", &a); return 0; }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3