QT获取网络接口信息包括主机名、物理地址等
目录
1.界面ui
2.添加头文件
3.添加函数声明
4.添加.cpp代码
5.运行
1.界面ui
2.添加头文件
NetInfoDialog.h
复制代码
1
2
3
4
5#include <QDialog> #include <QHostInfo> #include <QNetworkInterface> #include <QHostAddress> #include <QMessageBox>
3.添加函数声明
复制代码
1
2
3
4
5
6private slots: void on_pushButton_clicked(); public: //获取当前的主机名和IP地址 //对应当前系统"/etc/hosts"文件 void getHostInfo();
4.添加.cpp代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62NetInfoDialog::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获取网络接口信息包括主机名、物理地址等内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复