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子网掩码等网络信息)相关推荐

  1. python设置本机IP地址、子网掩码、DNS,获取本机IP地址、子网掩码、DNS、MAC

    python设置本机IP地址.子网掩码.DNS,获取本机IP地址.子网掩码.DNS.MAC main.py """=== coding: UTF8 ==="&q ...

  2. qt获取本机全部ipv4_QT5下获取本机IP地址、计算机名、网络连接名、MAC地址、子网掩码、广播地址...

    获取主机名称 /* * 名称:get_localmachine_name * 功能:获取本机机器名称 * 参数:no * 返回:QString */ QString CafesClient::get_ ...

  3. Qt学习之路之获取本机IP

    Qt提供的好几个类都可以获取到本机IP:IP4与IP6.这里,笔者使用QT获取本IP的方式如下: 头文件名: gethostIP_widget.h 头文件代码如下: #ifndef GETHOSTIP ...

  4. Qt获取本机IP、MAC地址、子网掩码、网卡名等函数设计

    获取本机IP函数 QString getIp() {QString myIp;QList<QHostAddress> ipList = QNetworkInterface::allAddr ...

  5. qt获取本机IP地址、计算机名、网络连接名、MAC地址、子网掩码、广播地址

    获取主机名称 /** 名称:get_localmachine_name* 功能:获取本机机器名称* 参数:no* 返回:QString*/ QString CafesClient::get_local ...

  6. Go 学习笔记(79)— Go 标准库 net(获取本机IP地址)

    1. 获取本机 IP 地址 package mainimport ("fmt""net" )// 获取本机网卡IP func getLocalIP() (ipv ...

  7. python获取mac、计算机id_python 获取本机IP、mac地址、计算机名的简单示例

    这篇文章主要为大家详细介绍了python 获取本机IP.mac地址.计算机名的简单示例,具有一定的参考价值,可以用来参考一下. 对python获取本机IP.mac地址.计算机名感兴趣的小伙伴,下面一起 ...

  8. 在Linux上利用python获取本机ip

    下面介绍在Linux上利用python获取本机ip的方法. 经过网上调查, 发现大致有两种方法, 一种是调用shell脚本,另一种是利用python中的socket等模块来得到,下面是这两种方法的源码 ...

  9. python获取本机 ip地址、mac地址(物理地址)、计算机名、硬盘序列号、CPU序列号、主板序列号、bios序列号、bios uuid号

    文章目录 python获取本机IP地址.mac地址(物理地址).计算机名 物理地址 计算机名.ip地址 硬盘序列号 CPU序列号 主板序列号 bios序列号 bios uuid号 python获取本机 ...

最新文章

  1. 【3DMax教程】三维产品可视化视频教程 3d Products Visualization Course
  2. 影响计算机算法世界的十位大师(上)
  3. Js Call方法详解(js 的继承)
  4. [翻译]使用C#创建SQL Server的存储过程(Visual Studio 2005 + SQL Server 2005)
  5. mysql中主键外键的作用_数据库主键和外键的作用以及索引的作用,它的优缺点是什么?...
  6. Linux中文件权限的一些知识
  7. LeetCode 1093. 大样本统计
  8. 绑定gridview去掉标题文字粗体。
  9. Oracle全文索引之四 维护
  10. docker中java应用new FileOutputStream直接报Input/output error
  11. bzoj 相似回文串 3350 3103 弦图染色+manacher
  12. C++工程通过opencv找到自己定义的矩形中的两平行线的距离
  13. 测试远程服务器udp端口,测试远程udp端口
  14. 回归分析中自变量取舍、检验及多重共线性处理(VIF)
  15. MFC小游戏之坦克大战
  16. 芋头怎么蒸好吃 蒸芋头的技巧有哪些
  17. 热带地区数据中心需要太阳能发电,而不是自然冷却
  18. 【高等数学基础进阶】多元函数微分学-重极限、连续、偏导数、全微分
  19. 雅虎邮箱停用对网民的影响
  20. 计算机组成原理7-主存储器—存储器与CPU的连接

热门文章

  1. iOS开发之蓝牙4.0开发使用
  2. 质量管理-----解决问题A3报告写法
  3. 一部以中国现实为大背景的英国科幻电影《未来密码46》
  4. 常见网络安全设备弱口令(默认口令)
  5. python把.CSV文件转换成.JSON格式文件并格式化储存
  6. 广州数据中心机房机柜安装施工
  7. 全面解读数字经济内涵 大力推动数字经济发展
  8. MeterSphere | 超好用的开源测试平台
  9. 【NFS服务】Linux/Ubuntu 搭建NFS服务器
  10. 使用CainAbel进行网络嗅探