获取本机网络信息,具体实现方法如下:
(1)头文件“networkinformation.h”的具体代码如下:

#include <QWidget>
#include <QLabel>
#include <QPushButton>
#include <QLineEdit>
#include <QGridLayout>
#include <QMessageBox>
class NetworkInformation : public QWidget
{
Q_OBJECT
public:
NetworkInformation(QWidget *parent = 0);
~NetworkInformation();
private:
QLabel *hostLabel;
QLineEdit *LineEditLocalHostName;
QLabel *ipLabel;
QLineEdit *LineEditAddress;
QPushButton *detailBtn;
QGridLayout *mainLayout;
};

(2)源文件“networkinformation.cpp”的具体代码如下:

#include "networkinformation.h"
NetworkInformation::NetworkInformation(QWidget *parent)
: QWidget(parent)
{
hostLabel = new QLabel(tr("主机名:"));
LineEditLocalHostName = new QLineEdit;
ipLabel = new QLabel(tr("IP 地址:"));
LineEditAddress = new QLineEdit;
detailBtn = new QPushButton(tr("详细"));
mainLayout = new QGridLayout(this);
mainLayout->addWidget(hostLabel,0,0);
mainLayout->addWidget(LineEditLocalHostName,0,1);
mainLayout->addWidget(ipLabel,1,0);
mainLayout->addWidget(LineEditAddress,1,1);
mainLayout->addWidget(detailBtn,2,0,1,2);
}

此时,运行结果如下图所示:

以上步骤完成了界面,下面开始真正实现获取本机网络信息的内容。
(1)在文件“NetworkInformation.pro”中添加如下代码:

QT += network

(2)在头文件“networkinformation.h”中添加如下代码:

#include <QHostInfo>
#include <QNetworkInterface>
public:
void getHostInformation();
public slots:
void slotDetail();

(3)在源文件“networkinformation.cpp”中添加代码。其中,在构造函数的最后添加:

getHostInformation();
connect(detailBtn,SIGNAL(clicked()),this,SLOT(slotDetail()));
getHostInformation()函数用于获取主机信息。具体实现代码如下:
void NetworkInformation::getHostInformation()
{
QString localHostName = QHostInfo::localHostName(); //获取本机主机名。QHostInfo提供了一 系列有关网络信息的静态函数,可以根据主机名获取分配的IP地址,也可以根据IP地址获取相应的 主机名
LineEditLocalHostName->setText(localHostName);
QHostInfo hostInfo = QHostInfo::fromName(localHostName); //根据主机名获取相关主机信息, 包括IP地址等。QHostInfo::fromName()函数通过主机名查找IP地址信息。
QList<QHostAddress> listAddress = hostInfo.addresses(); //获取主机的IP地址列表
if(!listAddress.isEmpty()) //获取的主机IP地址列表可能为空。在不为空的情况下使用第一 个IP地址
{
LineEditAddress->setText(listAddress.at(2).toString());
}
}

slotDetail()函数获取与网络接口相关的信息,具体实现代码如下:

void NetworkInformation::slotDetail()
{
QString detail="";
QList<QNetworkInterface> list=QNetworkInterface::allInterfaces(); //QNetwork Interface 类提供了一 个主机IP地址和网络接口的列表。
for(int i=0;i<list.count();i++)
{
QNetworkInterface interface=list.at(i);
detail=detail+tr("设备:")+interface.name()+"\n"; //获取网络接口的名称。
detail=detail+tr("硬件地址:")+interface.hardwareAddress()+"\n"; //获取网络接口的硬件地址。
QList<QNetworkAddressEntry> entryList=interface.addressEntries(); //每个网络接口包括0个或多个IP地址,每个IP地址有选择性地与一个 子网掩码和(或)一个广播地址相关联。QNetworkAddressEntry类存储了被网络接口支持的一个IP地址, 同时还包括与之相关的子网掩码和广播地址
for(int j=1;j<entryList.count();j++)
{
QNetworkAddressEntry entry=entryList.at(j);
detail=detail+"\t"+tr("IP 地址:")+entry.ip().toString()+"\n";
detail=detail+"\t"+tr("子网掩码:")+entry.netmask().toString() +"\n";
detail=detail+"\t"+tr("广播地址:")+entry.broadcast().toString() +"\n";
}
}
QMessageBox::information(this,tr("Detail"),detail);
}

运行结果如图所示:

点击”详细“后会弹出如下内容:

QT学习:获取本机网络信息相关推荐

  1. [转载]Qt之获取本机网络信息

    原文地址:Qt之获取本机网络信息作者:一去丶二三里 经常使用命令行来查看一些计算机的配置信息. 1.首先按住键盘上的"开始键+R键",然后在弹出的对话框中输入"CMD&q ...

  2. [转载]Qt之获取本机网络信息_vortex_新浪博客

    原文地址:Qt之获取本机网络信息作者:一去丶二三里 经常使用命令行来查看一些计算机的配置信息. 1.首先按住键盘上的"开始键+R键",然后在弹出的对话框中输入"CMD&q ...

  3. [Qt教程] 第35篇 网络(五)获取本机网络信息

    [Qt教程] 第35篇 网络(五)获取本机网络信息 楼主  发表于 2013-9-5 11:32:58 | 查看: 278| 回复: 2 获取本机网络信息 版权声明 该文章原创于作者yafeilinu ...

  4. Qt网络获取本机网络信息

    下面我们就讲解如何获取自己电脑的IP地址以及其他网络信息.这一节中,我们会涉及到网络模块(QtNetwork Module)中的QHostInfo ,QHostAddress ,QNetworkInt ...

  5. 第35篇 网络(五)获取本机网络信息

    导语 前面讲完了HTTP和FTP,下面本来该讲解UDP和TCP了.不过,在讲解它们之前,我们先在这一节里讲解一个以后要经常用到的名词,那就是IP地址. 对于IP地址,其实,会上网的人都应该听说过它.如 ...

  6. Qt学习笔记——获取本机网络信息(IP, 子网掩码, 广播地址,主机名

    最重要的一步,先在工程pro文件添加 QT += network 用到头文件 QHostInfo QNetworkInterface 函数: (只写出返回类型,没有具体到是否const QHostIn ...

  7. qt获取本机全部ipv4_Qt之获取本机网络信息(MAC, IP等等,很全)

    经常使用命令行来查看一些计算机的配置信息. 1.首先按住键盘上的"开始键+R键",然后在弹出的对话框中输入"CMD",回车 另外,还可以依次点击 开始>所 ...

  8. C#如何获取本机网络ip地址

    C#如何获取本机网络ip 有几种方法获取本机局域网地址和网络地址. 1.  获取本机局域网地址: 使用IPHostEntry static string GetLocalIp()         { ...

  9. C#获取本机网络连接名,获取和设置IP地址

    C#获取本机网络连接名,获取和设置IP地址,使用WMI接口 新建windowsForm应用程序GetAndSetIpAddressDemo,将默认的窗体Form1重命名为FormGetAndSetIP ...

最新文章

  1. Windows Phone 7 开“.NET研究”发之:工具栏
  2. centos6 安装 mantisbt-1.2.8 —— (5)Mantisbt-1.2.8在contos上的安装
  3. error LNK2001: unresolved external symbol _main
  4. 九十三、动态规划系列之股票问题(下)
  5. 赠与大学毕业生_出售,赠与或交易iPhone之前应该做什么
  6. 没有什么是日本牛郎店做不到的......
  7. pyhton 面向对象(下)
  8. Find the longest route with the smallest starting point
  9. 现在,TensorRT 4开放下载了
  10. Halcon算法矫正镜头畸变
  11. 使用CSS实现透明边框的效果——兼容当前各种主流浏览器[xyytIT]
  12. 北通usb手柄_多平台适配,北通斯巴达2无线版手柄操控灵敏
  13. 最受欢迎的Chrome插件Adblock屏蔽网页广告
  14. 微信公众号,图文编辑超链接中,没有外部链接只能增加公众号链接是什么情况?
  15. 在线作图|2分钟做Lefse分析
  16. python识图训练_使用tensorflow训练模式识别图片中的对象(object-detection)
  17. html去除背景颜色怎么设置,word背景颜色怎么去掉
  18. 实训(一)学生管理系统
  19. 安卓模拟器错误: Could not open
  20. jboss简单使用--刚开始接触,感觉还是比较详细的

热门文章

  1. 刷完EMNLP 2021论文列表,我们挑出了这8篇预训练相关必读论文
  2. 小米知识图谱团队斩获CCKS 2020实体链指比赛冠军
  3. 总奖金近9万!视频超分辨率大赛等你来战!
  4. 爬虫笔记10Scrapy-框架
  5. java插件技术_idea 好用的java插件
  6. echarts 默认显示图例_echarts图例组件点击显示功能(默认功能点击消失)
  7. encryption数据库配置信息用户名密码加密
  8. java lambdamart库,LambdaMART 之 lambda(示例代码)
  9. 设计模式——装饰者(Decorator)模式DEMO——成绩汇报的装饰者模式实现
  10. Little Sub and Apples