QT-网络通信篇-获取本机信息

                今天carry对QT网络通信的http有了一定的理解,可能了解的非常基础,希望大家多提点意见哈!大笑


            

         QT中的网络编程是由Qt Network提供的,它提供了许多类来实现网络应用中的各种功能,下面简单实现一下获取本机信息


1,在UI界面添加如图控件

         
    

 2,在.pro工程文件中添加    

QT  += network
          在.h文件中添加要用到的库函数

#include <QHostInfo>         //可以根据主机名获取到IP地址,也可以通过IP地址获取到主机名
  #include <QNetworkInterface>  //提供主机的IP地址和网络接口列表

    

 3,实现按钮的槽函数以及获取本机信息的成员函数

void getHostInformation();

public slots:
    void on_pushButton_clicked();
4,在.cpp的构造函数中调用

getHostInformation();
     类体外定义该函数

 QString localHostName = QHostInfo::localHostName();
    ui->lineEdit->setText(localHostName);                         //获取到主机名

    QHostInfo hostInfo = QHostInfo::fromName(localHostName);
    QList<QHostAddress> listAddress = hostInfo.addresses();       //获得到主机IP地址的列表

    if(!listAddress.isEmpty())
    {
        ui->lineEdit_2->setText(listAddress.first().toString());  //使用IP列表的第一个值
    }
4,定义Button的槽函数

QString detail="";
    //一个主机的IP和网络接口列表
    QList<QNetworkInterface> list=QNetworkInterface::allInterfaces();
    for(int i=0;i<list.count();i++)
    {
        QNetworkInterface interface=list.at(i);
        //获得网络接口的名称
        detail=detail+QString::fromLocal8Bit("设备:")+interface.name()+"\n";
        //获得网络接口的硬件地址
        detail=detail+QString::fromLocal8Bit("硬件地址:")+interface.hardwareAddress()+"\n";
        //QNetworkAddressEntry里包括每个网络接口对应的一个IP地址和子网掩码以及广播地址
        QList<QNetworkAddressEntry> entryList=interface.addressEntries();
        //循环列出
        for(int j=0;j<entryList.count();j++)
        {
            QNetworkAddressEntry entry=entryList.at(j);
            detail=detail+"\t"+QString::fromLocal8Bit("IP 地址:")+entry.ip().toString()+"\n";
            detail=detail+"\t"+QString::fromLocal8Bit("子网掩码:")+entry.netmask().toString()+"\n";
            detail=detail+"\t"+QString::fromLocal8Bit("广播地址:")+entry.broadcast().toString()+"\n";
        }
    }
    //在指定父部件前面打开具有给定标题和文本的信息消息框。
    QMessageBox::information(this,QString::fromLocal8Bit("网络接口信息"),detail);
 5,结果如图



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

搓搓程序狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值