QT——获取主机的名称和IP地址

it2023-06-03  67

一、只获取主机名称和IP地址 

#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(); };

二、获取各种网络接口和设备名

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; } }

 

最新回复(0)