官方解析

QHostInfo提供了一个静态方法获取主机名;

QHostInfo中有一个查找机制,可以根据IP找主机名,也可能工具主机名找IP,可以通过调用QHostInfo::lookupHost这个静态函数进行操作,这里要注意这里是异步发送的,后面将会稍微说明下!

如下例子:

  // To find the IP address of qt-project.orgQHostInfo::lookupHost("qt-project.org",this, SLOT(printResults(QHostInfo)));// To find the host name for 4.2.2.1QHostInfo::lookupHost("4.2.2.1",this, SLOT(printResults(QHostInfo)));

addresses可以得到这个主机的所有IP(比如www.baidu.com在北京,就会有2个IP与之对应)

如果出现错误,可以打印错误,如下代码:

QHostInfo info = QHostInfo::fromName("qt-project.org");

注意:如果要发送大量的数据,获取主机名,或IP,调用槽函数的顺序将会不同,这个将会在另外一篇博文中给出(获取局域网中使用了的IP,以及主机名)

博主例子

这里只对官方实例进行补充:

程序运行截图如下:

程序结构如下:

源码如下:

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE
class QHostInfo;
QT_END_NAMESPACEnamespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();protected slots:void lookUp(const QHostInfo &host);private:Ui::Widget *ui;
};#endif // WIDGET_H

main.cpp

#include "widget.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}

widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include <QHostInfo>Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);QHostInfo::lookupHost("www.baidu.com", this, SLOT(lookUp(QHostInfo)));
}Widget::~Widget()
{delete ui;
}void Widget::lookUp(const QHostInfo &host)
{if(host.error() != QHostInfo::NoError){qDebug() << "Lookup failed: " << host.errorString();return;}const auto addresses = host.addresses();for(const QHostAddress &address : addresses){qDebug() << "address:" << address.toString() << "  hostname:" << host.hostName();}
}

程序打包下载:

https://github.com/fengfanchen/Qt/tree/master/QHostInfoLookupDemo

Qt文档阅读笔记-QHostInfo官方解析与实例(根据Host获取IP)相关推荐

  1. Qt文档阅读笔记-QSet官方解析及实例

    目录 官方解析 博主栗子 官方解析 QSet类是一个模板类,他是一个哈希表集合. QSet<T>是Qt的一个普通容器类.QSet存储的值是不指明顺序的,QSet对这些值提供了快速检索的功能 ...

  2. Qt文档阅读笔记-QtWebApp官方解析与实例(使用QtWebApp搭建HTTP服务器)

    目录 官方解析 博主例子 官方解析 QtWepApp是一个C++的http服务器,受到了java Servlets的启发,因为是Qt写的,所以有跨平台的支持. QtWebApp包含如下的组成部分:   ...

  3. Qt文档阅读笔记-QTcpServer官方解析与实例(使用QSocket创建简单的HTTP服务器)

    目录 官方解析 博主例子(做一个简单的HTTP服务器) 本例子中HTTP协议关键点 官方解析 QTcpServer类,提供TCP服务的基础: 这个类接受TCP连接,可以指定一个端口,也可以让其自动一个 ...

  4. Qt文档阅读笔记-QWebPage官方解析与实例

    目录 官方解析 博主例子 源码下载地址 官方解析 QWebPage提供一个视图对象和一个web页面: QWebPage提供了web页面的内容,各种设置(是否支持JavaScript等)和连接,它与QW ...

  5. Qt文档阅读笔记-QWebView官方解析与实例

    目录 背景 官方解析 博主例子 背景 最近发现某Qt项目,出现的效果杠杆的,在看某一小功能的时候,发现有个echart的东西,百度了发现,真的是一个新大陆,Qt加web编程,贼吉尔可怕. 在此发现使用 ...

  6. Qt文档阅读笔记-Q_CLASSINFO官方解析与实例

    官方解析 Q_CLASSINFO 这个宏为类提供额外的信息,要想获取这个Q_CLASSINFO这个信息要使用QObject::metaObject().Qt在Active Qt,Qt D-BUS以及Q ...

  7. Qt文档阅读笔记-stackUnder官方解析与实例

    目录 官方解析 博主例子 官方解析 这里可以配合raise()和lower()这两个函数来使用! 博主例子 用2个label,点击谁谁就浮在界面的最上面,很简单的代码,程序运行截图如下: 源码如下: ...

  8. Qt文档阅读笔记-QPropertyAnimation官方解析及实例

    目录 官方解析 博主例子 官方解析 QPropertyAnimation QPropertyAnimation类为Qt属性提供动画. QPropertyAnimation类可以修改Qt属性,从而达到动 ...

  9. Qt文档阅读笔记-QNetworkAccessManager官方解析与实例

    目录 官方解析 博主例子 官方解析 QNetworkAccessMangager类运行应用程序回复和接收网络包. QNetworkAccessManager是一套API库,可以发包,设置代理,内存配置 ...

最新文章

  1. 4月书讯:迟来的告白
  2. Remote Direct Memory Access (RDMA)
  3. python常用的集成开发环境和编辑器有哪些_常用的几款Python集成开发环境或者编辑器详解...
  4. 小米澄清传闻:不存在跨境转移利润及逃避缴纳税款行为
  5. Bing空间数据服务
  6. 稳定云服务器出租_云主机与独立服务器有哪些不同
  7. ubuntu16.04下安装NS-2.35以及对simple例的理解
  8. linux词语大全,简单词语大全二字学习软件-简单词语大全四字下载v1.5.3-Linux公社...
  9. Postman怎么用?
  10. 建立书签链接的html语言,HTML建立超链接
  11. 毕业论文可能用到的一些东西
  12. jwplayer android m3u8,播放上jwplayer M3U8文件,而RTMP
  13. 分享一个AUTO uninstaller|AUTOCAD 安装失败解决方案
  14. 手机处理器天梯图2021
  15. TLC5615模数转换锯齿波仿真实验(Arduino)
  16. 轻松查询多个中通速递发出物流中含有某个城市的单号
  17. 一脸懵逼学习Hadoop-HA机制(以及HA机制的配置文件,测试)
  18. 除尘机器人毕业_一种除尘机器人的制作方法
  19. 怎么一心多用高效处理工作琐事?用敬业签同时处理多个任务
  20. 【janus 】openresty +janus

热门文章

  1. 实现高性能稳定的socket tcp通讯经验分享
  2. NVIDIA显卡Linux驱动180.44正式版
  3. 天才编程女孩敲开支付宝大门!马云:有梦想的孩子了不起!
  4. 有没有一个永久储存数据的地方?
  5. 2019年总结人工智能未来发展趋势
  6. p2psearcher怎么用
  7. 局域网聊天9月局域网聊天
  8. 04CDatabase类
  9. 炸锅了!阿里Ant Design前端框架的圣诞彩蛋事件
  10. ecology9 后端开发环境搭建_利用Vagrant快速搭建开发环境