Qt网路与通信(获取本机IP、MAC、IPV6子网掩码等网络信息)
Qt网路与通信(获取本机网络信息)
在网络应用中,经常需要获取本机的主机名/IP地址和硬件地址信息等网络信息。运用QHostInfo、QNetworkInterface、QNetworkAddressEntry可获取本机的网络信息。
QT的网络依赖于network库因此需要在pro文件中添加network!!!
QT += core gui network
QHostInfo
通过QHostInfo函数可以获取主名,获取本机的域和IP地址。
获取本机的名字
通过QHostInfo的localHostName函数获取名字
QString strHostName = QHostInfo::localHostName();
获取本机域
通过QHostInfo的localDomainName函数获取本机域
QString strHostDomain = QHostInfo::localDomainName();
获取本机IP
在windows系统中可以获取全部的IP地址,但是在linux中仅能获取一个ip地址且ip地址为127.0.1.1.获取的ip地址可以在/etc/hosts中查到。
QList<QHostAddress> list = hostInfo.addresses();foreach (auto item, list) {qInfo() << item.toString();}
注:通过该方法我可以获取其他域名地址ip,比如www.baidu.com
QHostInfo hostInfo = QHostInfo::fromName("www.baidu.com");QList<QHostAddress> list = hostInfo.addresses();foreach (auto item, list) {qInfo() << item.toString();}
获取本机所有IP
QList<QHostAddress> listAddress = QNetworkInterface::allAddresses();foreach (auto item, listAddress) {qInfo() << item.toString();}
Constant | Value | Description |
QHostAddress::Null | 0 | The null address object. Equivalent to QHostAddress(). See also QHostAddress::isNull(). |
QHostAddress::LocalHost | 2 | The IPv4 localhost address. Equivalent to QHostAddress("127.0.0.1"). |
QHostAddress::LocalHostIPv6 | 3 | The IPv6 localhost address. Equivalent to QHostAddress("::1"). |
QHostAddress::Broadcast | 1 | The IPv4 broadcast address. Equivalent to QHostAddress("255.255.255.255"). |
QHostAddress::AnyIPv4 | 6 | The IPv4 any-address. Equivalent to QHostAddress("0.0.0.0"). A socket bound with this address will listen only on IPv4 interfaces. |
QHostAddress::AnyIPv6 | 5 | The IPv6 any-address. Equivalent to QHostAddress("::"). A socket bound with this address will listen only on IPv6 interfaces. |
QHostAddress::Any | 4 | The dual stack any-address. A socket bound with this address will listen on both IPv4 and IPv6 interfaces. |
QNetworkInterface(推荐)
由于一台主机的网络地址看你是多个因此我们可要通过QNetworkInterface
通过QNetworkInterface的allInterfaces静态函数获取所有的网络接口。
然后通过函数可以获取其他能容,比如接口名称,硬件地址(MAC),ip地址,子网掩码,广播地址等。
设备名称:name();
硬件地址(MAC):hardwareAddress()
ip地址 : ip().toString()
子网: netmask().toString();
广播地址:broadcast().toString()
QList<QNetworkInterface> listNetworkInterface =QNetworkInterface::allInterfaces();foreach (auto item, listNetworkInterface) {qInfo() << tr("设备:") + item.name();// MACqInfo() << tr("硬件地址:") + item.hardwareAddress();foreach (auto item2, item.addressEntries()) {qInfo() << " " + tr("ip地址:") + item2.ip().toString();qInfo() << " " + tr("子网掩码:") + item2.netmask().toString();qInfo() << " " + tr("广播地址:") + item2.broadcast().toString();}}
运行结果如下:
源码地址
QtNetWork/HostInfo · master · 啊渊 / QT博客案例 · GitCode
Qt网路与通信(获取本机IP、MAC、IPV6子网掩码等网络信息)相关推荐
- python设置本机IP地址、子网掩码、DNS,获取本机IP地址、子网掩码、DNS、MAC
python设置本机IP地址.子网掩码.DNS,获取本机IP地址.子网掩码.DNS.MAC main.py """=== coding: UTF8 ==="&q ...
- qt获取本机全部ipv4_QT5下获取本机IP地址、计算机名、网络连接名、MAC地址、子网掩码、广播地址...
获取主机名称 /* * 名称:get_localmachine_name * 功能:获取本机机器名称 * 参数:no * 返回:QString */ QString CafesClient::get_ ...
- Qt学习之路之获取本机IP
Qt提供的好几个类都可以获取到本机IP:IP4与IP6.这里,笔者使用QT获取本IP的方式如下: 头文件名: gethostIP_widget.h 头文件代码如下: #ifndef GETHOSTIP ...
- Qt获取本机IP、MAC地址、子网掩码、网卡名等函数设计
获取本机IP函数 QString getIp() {QString myIp;QList<QHostAddress> ipList = QNetworkInterface::allAddr ...
- qt获取本机IP地址、计算机名、网络连接名、MAC地址、子网掩码、广播地址
获取主机名称 /** 名称:get_localmachine_name* 功能:获取本机机器名称* 参数:no* 返回:QString*/ QString CafesClient::get_local ...
- Go 学习笔记(79)— Go 标准库 net(获取本机IP地址)
1. 获取本机 IP 地址 package mainimport ("fmt""net" )// 获取本机网卡IP func getLocalIP() (ipv ...
- python获取mac、计算机id_python 获取本机IP、mac地址、计算机名的简单示例
这篇文章主要为大家详细介绍了python 获取本机IP.mac地址.计算机名的简单示例,具有一定的参考价值,可以用来参考一下. 对python获取本机IP.mac地址.计算机名感兴趣的小伙伴,下面一起 ...
- 在Linux上利用python获取本机ip
下面介绍在Linux上利用python获取本机ip的方法. 经过网上调查, 发现大致有两种方法, 一种是调用shell脚本,另一种是利用python中的socket等模块来得到,下面是这两种方法的源码 ...
- python获取本机 ip地址、mac地址(物理地址)、计算机名、硬盘序列号、CPU序列号、主板序列号、bios序列号、bios uuid号
文章目录 python获取本机IP地址.mac地址(物理地址).计算机名 物理地址 计算机名.ip地址 硬盘序列号 CPU序列号 主板序列号 bios序列号 bios uuid号 python获取本机 ...
最新文章
- 【3DMax教程】三维产品可视化视频教程 3d Products Visualization Course
- 影响计算机算法世界的十位大师(上)
- Js Call方法详解(js 的继承)
- [翻译]使用C#创建SQL Server的存储过程(Visual Studio 2005 + SQL Server 2005)
- mysql中主键外键的作用_数据库主键和外键的作用以及索引的作用,它的优缺点是什么?...
- Linux中文件权限的一些知识
- LeetCode 1093. 大样本统计
- 绑定gridview去掉标题文字粗体。
- Oracle全文索引之四 维护
- docker中java应用new FileOutputStream直接报Input/output error
- bzoj 相似回文串 3350 3103 弦图染色+manacher
- C++工程通过opencv找到自己定义的矩形中的两平行线的距离
- 测试远程服务器udp端口,测试远程udp端口
- 回归分析中自变量取舍、检验及多重共线性处理(VIF)
- MFC小游戏之坦克大战
- 芋头怎么蒸好吃 蒸芋头的技巧有哪些
- 热带地区数据中心需要太阳能发电,而不是自然冷却
- 【高等数学基础进阶】多元函数微分学-重极限、连续、偏导数、全微分
- 雅虎邮箱停用对网民的影响
- 计算机组成原理7-主存储器—存储器与CPU的连接