概述
QT获取网络接口信息包括主机名、物理地址等
目录
1.界面ui
2.添加头文件
3.添加函数声明
4.添加.cpp代码
5.运行
1.界面ui
2.添加头文件
NetInfoDialog.h
#include <QDialog>
#include <QHostInfo>
#include <QNetworkInterface>
#include <QHostAddress>
#include <QMessageBox>
3.添加函数声明
private slots:
void on_pushButton_clicked();
public:
//获取当前的主机名和IP地址
//对应当前系统"/etc/hosts"文件
void getHostInfo();
4.添加.cpp代码
NetInfoDialog::NetInfoDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::NetInfoDialog)
{
ui->setupUi(this);
getHostInfo();
}
NetInfoDialog::~NetInfoDialog()
{
delete ui;
}
void NetInfoDialog::on_pushButton_clicked()
{
//创建保存详细地址信息的字符串
QString detail;
//获取所有的网络接口
QList<QNetworkInterface> list =
QNetworkInterface::allInterfaces();
for(int i = 0 ;i<list.count(); i++){
QNetworkInterface interface = list.at(i);
//设备名
detail += "设备:" + interface.name() + "n";
//MAC
detail += "硬件地址:" +
interface.hardwareAddress() + "n";
//IP、子网、广播
QList<QNetworkAddressEntry> entrylist =
interface.addressEntries();
for(int j=0; j<entrylist.count()-1; j++){
QNetworkAddressEntry entry =
entrylist.at(j);
detail += "IP地址:" +
entry.ip().toString() + "n";
detail += "子网掩码:" +
entry.netmask().toString() + "n";
detail += "广播地址:" +
entry.broadcast().toString() +"n";
}
}
//显示到提示框
QMessageBox::information(this,"详细网络信息",
detail);
}
void NetInfoDialog::getHostInfo()
{
//获取主机名
QString hostName = QHostInfo::localHostName();
//显示主机名到UI
ui->hostnameEdit->setText(hostName);
//通过主机名获取对应的地址
QHostInfo info = QHostInfo::fromName(hostName);
if(!info.addresses().isEmpty()){
//获取IPV4地址
QHostAddress addr = info.addresses().first();
//显示地址
ui->ipAddrEdit->setText(addr.toString());
}
}
5.运行
最后
以上就是失眠苗条为你收集整理的【QT】QT获取网络接口信息包括主机名、物理地址等的全部内容,希望文章能够帮你解决【QT】QT获取网络接口信息包括主机名、物理地址等所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复