QT的网络东西也蛮多的,我们今天先学一部分,然后后面在学一部分吧

一个能使用网络的应用,我们需要在项目工程中的pro文件里进行标记QT += core gui

#标记 网络

QT += network

然后我们来看下这一段代码void MainWindow::getHost()

{

//获取主机名

QString localHostName = QHostInfo::localHostName();

qDebug() << "主机名:" + localHostName;

//获取Ip

QHostInfo info = QHostInfo::fromName(localHostName);

QList list = info.addresses();

if(!list.isEmpty())

{

qDebug() << "ip:" + list.first().toString();

}

//我们还可以获取更多

//返回在主机上找到的所有网络接口的列表

QList listImpl = QNetworkInterface::allInterfaces();

if(!listImpl.isEmpty())

{

for (int i = 0; i < listImpl.length(); ++i) {

QNetworkInterface interface = listImpl.at(i);

qDebug() << "设备:" + interface.name();

qDebug() << "硬件地址:" + interface.hardwareAddress();

//返回该接口所拥有的IP地址列表及其相关的网络掩码和广播地址。

QList enrtyList = interface.addressEntries();

for (int j = 0; j < enrtyList.length(); ++j) {

QNetworkAddressEntry entry = enrtyList.at(j);

qDebug() << "IP:" + entry.ip().toString();

qDebug() << "子网掩码:" + entry.netmask().toString();

qDebug() << "广播地址:" + entry.broadcast().toString();

}

}

}

}

这一段代码实际上很简单就是调用了对应的函数,我们include的类也很多#include

#include

#include

#include

#include

#include

我就来简单的说一下这些的作用吧

我们首先通过QHostInfo的静态函数localHostName获取到主机名,关于localHostName,我们可以看下助手上的解释

返回的就是主机名,好,我们接下来呢,又通过fromName来获取ip地址,来看下关于fromName的解释

他需要传一个name,翻译过来的意思就是:

查找给定主机名的IP地址,在查找过程中,函数会阻塞,这意味着程序的执行会暂停,直到查找的结果就绪为止。返回在QHostInfo对象中查找的结果,如果您传递一个文字IP地址而不是主机名,QHostInfo将搜索IP的域名(即QHostInfo将执行反向查找。在成功时,返回的QHostInfo将包含解析的域名和主机名的IP地址。

可以发现这里返回的是一个list,我们便能获取到所有的IP地址了,我这里只打印了第一个而已,紧接着我们通过QNetworkInterface的静态函数allInterfaces获取到所有的我们想要的信息了,可以看下运行结果

接下来我们看下如何去实现GET请求吧!

我们会使用的三个类#include

#include

#include

我们也是通过一个信号去做处理的connect(this->manger,SIGNAL(finished(QNetworkReply*)),this,SLOT(parsingJson(QNetworkReply*)));1

这里用到的manager是一个指针,需要先初始化一下this->manger = new QNetworkAccessManager(this);1

然后我们看一下怎么去调用void MainWindow::getNetData()

{

//设置发送数据

this->network_request.setUrl(QUrl("http://gank.io/api/data/Android/10/1"));

//发送信息

this->manger->get(this->network_request);

}

嗯,很简单,只要设置url然后调用get即可,随后我们在槽函数中可以接受到返回的结果void MainWindow::parsingJson(QNetworkReply * reply)

{

QString all = reply->readAll();

qDebug() << all ;

}

这样就能获取到json了

好的,这些知识点还都比较浅,我们后续一步步的来实现更多的技巧。

linux qt获取网卡mac地址,QT实战获取主机名QT获取IP地址 获取MAC地址 获取广播地址...相关推荐

  1. java将域名解析为IP地址,获取网卡的配置信息

    DNS域名解析系统 系统简介:用户通过输入需要查询的域名,便可输出域名对应的一个IP地址或多个IP地址. 系统功能:1.通过输入域名可以查询域名所对应的IP地址. 2.可以获取当地的主机IP地址和本地 ...

  2. 【网络篇】第二篇——IP协议与MAC地址详解

    IP协议 理解源IP地址和目的IP地址 网段划分 IP地址的数量限制 私有IP地址和公网IP地址 路由 NAT(网络地址转换) ​编辑NAT IP转换过程 NAPT MAC地址 理解源MAC地址和目的 ...

  3. 网络工程师实战系列视频课程【IP地址规划篇】(考题精讲 + 项目实战)-夏杰-专题视频课程...

    网络工程师实战系列视频课程[IP地址规划篇](考题精讲 + 项目实战)-1128人已学习 课程介绍         1.我的自学经历分享(分享我各个方向自学探索,终选定网络的过程,告诉大家:勇于尝试( ...

  4. 在局域网络中计算机,如何在计算机局域网中设置IP和DNS服务器地址

    什么是计算机局域网的IP和DNS服务器地址,那么如何设置计算机局域网的IP和DNS服务器地址?以下是如何设置小编收集的计算机局域网的IP和DNS服务器地址. 有用~~ 在计算机局域网上设置IP和DNS ...

  5. android 获取网卡mac_Java获取Linux安卓设备的mac地址方法

    Java如何获取Linux或安卓Android设备的mac地址呢?方法非常简单,只需要使用下方代码即可轻松通过java获取mac地址了,代码如下:public String getMacAddress ...

  6. php 获取路由器mac地址,php如何获取网卡MAC地址(支持WIN与LINUX系统)

    /** 获取网卡的MAC地址:目前支持WIN/LINUX系统 获取机器网卡的物理(MAC)地址 **/ class GetMacAddr{ var $return_array = array(); / ...

  7. linux临时配置mac地址,Linux获取网卡型号、mac地址、修改IP地址的几种方法

    1.获取所有有(无)网卡型号 方法一.ifconfig 用法:ifconfig | grep | cut -d ':' -f 1 ubuntu root@ubuntu:~# ifconfig | gr ...

  8. php获取网卡mac地址吗,php获取网卡MAC地址步骤详解

    这次给大家带来php获取网卡MAC地址步骤详解,php获取网卡MAC地址的注意事项有哪些,下面就是实战案例,一起来看一下. php获取网卡的物理地址,即mac地址.<?php /** 获取网卡的 ...

  9. php 获取mac地址栏,php 获取网卡物理(MAC)地址的实现方法

    搜索热词 感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编来看看吧. 经测试代码如下: /** * 获取网卡物理(MAC)地址 * * @param * @author 编程之家 jb51. ...

最新文章

  1. Datawhale组队学习周报(第020周)
  2. sql2012包含数据库,快速生成用户tsql脚本
  3. mysql 函数 局部变量_MySQL 存储过程 存储函数 局部变量 游标 概念示例
  4. 轻量级锁的加锁和解锁逻辑
  5. 安装和使用Redis【转】
  6. Eclipse被卡死了或者失去响应了后分析根源的一个小技巧
  7. keras模型中的默认初始化权重
  8. NOI入门级:算法之动态规划
  9. JavaScript 5/30:Flex Panel Gallery即FLEX布局的图片库
  10. mysql unix formtime_linux下find命令-atime,-ctime,-mtime真正含义
  11. 红外倒车雷达原理图_斯坦福研究登Nature子刊:芯片实现激光雷达技术,价格低至数百美元...
  12. Django:ORM基本操作-CRUD,管理器对象objects,----->删除:删除单个数据,删除批量数据
  13. CentOS7 配置网络物理机ping不上虚拟机解决方法
  14. mysql同步 触发器_MySQL触发器运用于迁移和同步数据的实例教程
  15. matlab 方差,方差分解——matlab 代码
  16. matlab同时画n多条曲线,设置颜色及图例
  17. Ruby学习-Ruby语言的一些特点
  18. Python爬虫技术-根据【理财】关键字爬取“巨潮资讯网”的title
  19. WIN10 下的erlang + rabbitmq安装,以及遇到的问题
  20. C#Unity3d怪物在一定范围内巡逻发现玩家自动跟踪攻击,血量低于30%自动向后跳3米并缓慢回血的代码和使用

热门文章

  1. android 拍照 华为,【华为MateRS保时捷版评测】拍照:徕卡三摄登顶DxOMark名副其实_华为 Mate RS保时捷版_手机评测-中关村在线...
  2. 翻译Prism4碰到生单词
  3. Centos 7安装Quagga
  4. Python入门——组合数据类型
  5. python练习题百度云_Python专项基础练习(字符串)练习题
  6. 用JS将两个数组的数据合并成一个数组对象
  7. 【Python与数学建模】蒙特卡洛模拟仿真(附完整详细代码)
  8. 使用 Pycharm 创建一个 Django项目(详解)
  9. 第一章 初识HTML
  10. 全新线控制动系统产品发布,清智科技正式完成业务拓展