QT - get the name and IP address of the host

1. Only get the host name and IP address 

#include "ServerNetwork.h"
#include <QHostInfo>
#include <QDebug>
#include <QList>
#include <QNetworkAddressEntry>
#include <QNetworkInterface>
#pragma execution_character_set("utf-8")

ServerNetwork::ServerNetwork(QWidget *parent)
    : QWidget(parent)
{
	On_BtnGetHostInfo();
}
void ServerNetwork::On_BtnGetHostInfo()
{
    QString hostName = QHostInfo::localHostName();
    qDebug() << "主机名称:" << hostName;

    QList <QHostAddress> list = QNetworkInterface::allAddresses();
    foreach(QHostAddress address, list)
    {
	if (address.protocol() == QAbstractSocket::IPv4Protocol)
	{
	    qDebug() << "IP地址:" << address.toString();	//我们使用IPv4地址
	    return;
	}
    }
}

//头文件
#pragma once
#include <QtWidgets/QWidget>
#include "ui_ServerNetwork.h"

class ServerNetwork : public QWidget
{
    Q_OBJECT

public:
    ServerNetwork(QWidget *parent = Q_NULLPTR);
private:
	void On_BtnGetHostInfo();
};

2. Obtain various network interface and device names

void ServerNetwork::On_BtnGetHostInfo()
{
    QList<QNetworkInterface>list = QNetworkInterface::allInterfaces();//获取所有网络接口的列表
    foreach(QNetworkInterface interface,list)//遍历每个网络接口
    {
        qDebug() << "Device:" << interface.name();//设备名
        qDebug() << "HardwareAddress:" << interface.hardwareAddress();//硬件地址

        //获取IP地址条目列表,每个条目中包含一个IP地址,一个子网掩码和一个广播地址
        QList<QNetworkAddressEntry> entryList = interface.addressEntries();
        foreach(QNetworkAddressEntry entry,entryList)//遍历每一个IP地址条目
        {
            qDebug() << tr("-------------------------------------------------------");
            qDebug() << "IP Address:" << entry.ip().toString();              //IP地址
            qDebug() << "Netmask:" << entry.netmask().toString();            //子网掩码
            qDebug() << "Broadcast:" << entry.broadcast().toString();        //广播地址
            qDebug() << tr("-------------------------------------------------------");
        }
        qDebug() << endl;
    }
}

Guess you like

Origin blog.csdn.net/weixin_41734758/article/details/109183886