qt5读取所有本机IP
2024-08-30 12:19:12
说明
- 需要添加 network模块
- 本文介绍的函数将读取所有本机IP,包括 ipv4和ipv6
- 本文演示版本 qt5.14
头文件
#include <QHostAddress>
#include <QNetworkInterface>
读取代码
QStringList get_ip_()
{
QStringList list_ip;
QList<QHostAddress> ipAddressesList = QNetworkInterface::allAddresses();
int nListSize = ipAddressesList.size();
for (int i = 0; i < nListSize; ++i)
list_ip << ipAddressesList.at(i).toString();
return list_ip;
}
调用
qint32 index = 0;
QStringList list_ip = get_ip_();
for (auto item : list_ip)
{
qDebug() << "index=" << ++ index << ", ip=" << item;
}
结果
说明
- 上面的图片中可见,ipv6的地址中含有网卡编号, 我们只需要%左边的ip地址即可, 于是修正上面的代码即可得到
QStringList get_ip_()
{
QStringList list_ip;
QList<QHostAddress> ipAddressesList = QNetworkInterface::allAddresses();
int nListSize = ipAddressesList.size();
for (int i = 0; i < nListSize; ++i)
{
QString str_tmp = ipAddressesList.at(i).toString();
int split_pos = str_tmp.indexOf('%');
if (-1 != split_pos)
{
if ( 0 != split_pos)
split_pos = split_pos - 1;
str_tmp = str_tmp.left(split_pos);
}
list_ip << str_tmp;
}
return list_ip;
}
结果
最新文章
- 使用 ServiceStack 构建跨平台 Web 服务
- 前端学PHP之函数
- redis cluster php 客户端 predis
- 配置java环境 ,安装Android Studio...(ps:用eclipse也不错,但as是趋势 自己凭爱好选择)
- STM32移植RT-Thread后的串口在调试助手上出现:(mq != RT_NULL) assert failed at rt_mq_recv:2085和串口只发送数据不能接收数据问题
- c++成员函数的存储方式---11
- Opencv相关细节
- linux环境下安装sphinx中文支持分词搜索(coreseek+mmseg)
- **RESTful API版本控制策略
- LINUX 内核代码 errno 错误代码提示 /include/asm/errno.h
- 三、原子变量与CAS算法
- 背水一战 Windows 10 (105) - 通知(Toast): 带按钮的 toast, 带输入的 toast(文本输入框,下拉选择框)
- poj1062昂贵的聘礼(枚举+最短路)
- MUI 自定义从底部弹出的弹出框
- 力扣(LeetCode)125. 验证回文串
- 《Linux性能及调优指南》第二章:监控和基准工具2.1-2.2
- Javaweb学习(二):Http通信协议
- RNAcentral 数据库简介
- yum 执行不了, 解决方法
- linux每天一小步---mv命令详解