Qt 获取本机IP地址及Mac地址

这篇具有很好参考价值的文章主要介绍了Qt 获取本机IP地址及Mac地址。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首先需要在pro文件中添加network模块

QT += core gui network

添加头文件

#include <QNetworkInterface>
#include <QList>

以下是获取IP地址代码

QString getHostIpAddress()
{
    QString strIpAddress;
    // 这里获取的是本机所有的适配器网络ip
    QList<QHostAddress> ipAddressesList = QNetworkInterface::allAddresses();
    // 获取第一个本主机的IPv4地址
    int nListSize = ipAddressesList.size();
    for (int i = 0; i < nListSize; ++i)
    {
           if (ipAddressesList.at(i) != QHostAddress::LocalHost &&
               ipAddressesList.at(i).toIPv4Address()) {
               strIpAddress = ipAddressesList.at(i).toString();
               break;
           }
     }
     // 如果没有找到,则以本地IP地址为IP
     if (strIpAddress.isEmpty())
        strIpAddress = QHostAddress(QHostAddress::LocalHost).toString();
     return strIpAddress;
}

获取MAC地址

QString getHostMacAddress()
{
    QList<QNetworkInterface> nets = QNetworkInterface::allInterfaces();// 获取所有网络接口列表
    int nCnt = nets.count();
    QString strMacAddr = "";
    for(int i = 0; i < nCnt; i ++)
    {
        qDebug() << nets[i].hardwareAddress(); // 这个是获取到的所有mac地址
        // 如果此网络接口被激活并且正在运行并且不是回环地址,则就是我们需要找的Mac地址
        if(nets[i].flags().testFlag(QNetworkInterface::IsUp) && nets[i].flags().testFlag(QNetworkInterface::IsRunning) && !nets[i].flags().testFlag(QNetworkInterface::IsLoopBack))
        {
            strMacAddr = nets[i].hardwareAddress();
            break;
        }
    }
    return strMacAddr;
}

测试应用输出文章来源地址https://www.toymoban.com/news/detail-701780.html

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    qDebug() <<getHostIpAddress() << " " <<getHostMacAddress();
}

MainWindow::~MainWindow()
{
    delete ui;
}


到了这里,关于Qt 获取本机IP地址及Mac地址的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mac查看本机ip地址

    系统偏好设置—网络 2. IP地址如图所示: 打开终端—输入命令行 ifconfig | grep \\\"inet\\\" IP 地址如图所示:

    2024年02月13日
    浏览(38)
  • Mac查询本机ip地址

    Mac系统版本和网络配置不同,可能会有一些细微差别。         并回车,在输出的信息中,查找“inet”或“inet6”字样,后面跟着的数字就是你的IP地址,然后在输出中查找以 “inet “ 或 “inet6 “ 开头的行,这些行后面跟着的就是对应的IP地址。 (1)、查看特定网络接

    2024年01月23日
    浏览(48)
  • 在vue项目里获取本机数据,ip,mac……

    有一个接口需要内网ip和mac地址这个需求,在网上找了很多参考的,如下: 方法一:使用webRTC,问题:在新版本的chrome 浏览器,找不到#enable-webrtc-hide-local-ips-with-mdns 代码网上找的,仅供参考,因为改不了浏览器配置,所以一直拿不到 方法二:通过搜狐查询ip的接口,问题:

    2024年02月16日
    浏览(45)
  • 基于C++和Qt封装一个简单的socket(TCP/IP)通信UI界面

            最近在学习TCP/IP和socket套接字的有关知识,了解了三次握手四次挥手,TCP协议等等一大堆知识,但纸上得来终觉浅。网络上C++代码实现socket通信的资料很多,方便学习,于是想到自己用Qt实现一个基础的具有网络通信收发功能的服务端UI软件。进入正题:        

    2024年02月08日
    浏览(55)
  • Ubuntu中获取本机的物理网卡的IP和Mac

    思路:Linux中所有网卡名存放在/sys/class/net/目录下,虚拟网卡名存放在/sys/devices/virtual/net/目录下,故我们只需要获取所有网卡名后排除虚拟网卡名即可得到真实的网卡名。  在Ubuntu中使用C语言实现结果如下: 编译运行: 运行结果如下:   

    2024年02月13日
    浏览(41)
  • java实现通过IP地址获取mac(物理地址)

    java实现通过IP地址获取mac(物理地址),只能获取到局域网的mac地址,具体代码如下:

    2024年02月16日
    浏览(51)
  • C# 通过IP获取Mac地址(ARP)

    C# 通过IP获取Mac地址

    2024年02月03日
    浏览(49)
  • Android获取mac地址、OA地址和外网IP地址

    1、获取Mac地址:

    2024年02月13日
    浏览(42)
  • ASP.NET 获取客户端IP、MAC地址

      qqwry.dat 纯真IP数据库下载地址:   

    2024年02月15日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包