博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
windows开发--QT获取有线和WiFi的Ip地址
阅读量:3622 次
发布时间:2019-05-21

本文共 1717 字,大约阅读时间需要 5 分钟。

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、获取当前的flagQNetworkInterface::InterfaceFlags flags() const2、获取当前的MAC地址QString hardwareAddress() const3、获取当前的接口类型QNetworkInterface::InterfaceType type() const4、获取地址实体列表QList
addressEntries() const5、是否有效bool isValid() const6、获取indexint 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 < ifaceList.count(); i++) { QNetworkInterface var = ifaceList.at(i); qDebug()<
<<" "; qDebug()<
<
entryList = var.addressEntries(); for(int j = 0; j < entryList.count(); j++) { QNetworkAddressEntry entry = entryList.at(j); qDebug()<<" IP地址:"<
<

转载地址:http://txuun.baihongyu.com/

你可能感兴趣的文章
Java中线程的基本操作以及Thread和Runnable两种实现的比较
查看>>
MongoDbRepository的常用AP操作和易错点
查看>>
MongDBRepository和MongDBOperator和MongTemplate的方法比较
查看>>
IntelliJ IDEA中关于Maven构建复杂的聚合工程的管理和打包问题
查看>>
错误记录关于Model 的Not a managed type: class,无法找到Model
查看>>
关于JPA中Specification接口的问题,记录一下
查看>>
IntelliJ IDEA中GIT,已经 commit and push成功,但并未 push 到远程库的问题
查看>>
关于光盘刻录,重洗的一些知识
查看>>
default_Keyword
查看>>
do_Keyword
查看>>
for_Keyword
查看>>
float_Keyword
查看>>
finally_Keyword
查看>>
final_Keyword
查看>>
enum_Keyword
查看>>
extends_Keyword
查看>>
if_Keyword
查看>>
implements_Keyword
查看>>
import_Keyword
查看>>
int_Keyword
查看>>