QT获取本机所有IP地址以及修改本机IP(注意区分Windows和Linux环境)

QT 获取本机所有 IP 地址

  • Chapter1 QT 获取本机所有 IP 地址
    • 获取本机所有 IP 地址,包括 IPV6的地址,需要引用 QNetworkInterface
    • 1.检索所有网络接口:
    • 2.获取接口的详细信息:
    • 3.获取接口的 IP 地址:
    • 4.用于网络诊断和监控:
  • Chapter2 Qt|判断一个qstring是否包含某串字符
    • QString判断2个字符是否相同
    • QString判断是否包含某个字符串
    • QString字符串的截取
  • Chapter3 QT5修改windows电脑IP地址
    • 1、QT修改IP地址程序原理
    • 2、QT调用dos命令
    • 3、注意事项
  • Chapter4 Qt Qprocess 调用linux命令修改ip地址(通过shell命令)
    • 1.用ui画个简单的界面。
    • 2.获取网卡,提供一个combox供用户选择
    • 3.点击update时完成修改对应text里的ip,跳转槽后开始编辑代码:
      • 1.初始化一个Qstring对象用来存命令:
      • 2.声明一个Qprocess对象用来进行shell命令执行
  • Chapter5 在windows10下面使用QProcess配置IP信息
  • Chapter6 手动修改ARM Linux的静态IP和用QT获取和修改IP
    • 如何用QT获取和修改IP【转载】
    • 这是第一种方式
    • 第二种方法是采用QT自带的函数QList< QNetworkInterface >
  • Chapter7 Win下,Qt更改电脑IP、子网掩码和网关


Chapter1 QT 获取本机所有 IP 地址

原文链接:https://blog.csdn.net/zhouhui1982/article/details/138304247

获取本机所有 IP 地址,包括 IPV6的地址,需要引用 QNetworkInterface

QT       += network
void MainWindow::getLocalIPs()
{QString strIP;QList<QHostAddress> ipAddressesList;QList<QNetworkInterface> interfaces = QNetworkInterface::allInterfaces();foreach (QNetworkInterface interface, interfaces) {if (interface.flags() & QNetworkInterface::IsUp && !(interface.flags() & QNetworkInterface::IsLoopBack)) {QList<QNetworkAddressEntry> addressEntries = interface.addressEntries();foreach (QNetworkAddressEntry entry, addressEntries) {//只获取IPV4地址if (entry.ip().protocol() == QAbstractSocket::IPv4Protocol)ipAddressesList.append(entry.ip());}}}// 输出所有 IP 地址foreach (QHostAddress address, ipAddressesList) {strIP = address.toString();qDebug() << strIP;ui->textEdit->append(address.toString());//判断是否含有192.168.1.x IP地址if(strIP.contains("192.168.1", Qt::CaseInsensitive)){ui->textEdit_2->append(strIP);}}}

在这里插入图片描述
QNetworkInterface 是 Qt 框架中用于检索和处理网络接口的类。它提供了获取本地系统中所有网络接口的信息的能力,并允许访问与这些接口相关的属性,比如IP地址、硬件地址、接口名称等。
以下是一些关于 QNetworkInterface 类的主要功能和应用场景的说明:

1.检索所有网络接口:

通过 QNetworkInterface::allInterfaces() 可以获取当前设备的所有网络接口的列表。这在构建网络工具、诊断工具或其他与网络相关的应用时很有用。

QList<QNetworkInterface> interfaces = QNetworkInterface::allInterfaces();

2.获取接口的详细信息:

每个 QNetworkInterface 对象包含接口的属性,如硬件地址、接口名称、标志(如是否为环回、是否可用、是否为无线等)。

for (const QNetworkInterface &interface : interfaces) {QString name = interface.name(); // 接口名称QString hardwareAddress = interface.hardwareAddress(); // MAC 地址QFlags<QNetworkInterface::InterfaceFlag> flags = interface.flags(); // 接口标志
}

3.获取接口的 IP 地址:

你可以通过 QNetworkInterface::allAddresses() 获取与特定接口关联的所有 IP 地址。这些地址可能是 IPv4 或 IPv6。

QList<QHostAddress> addresses = interface.allAddresses();
for (const QHostAddress &address : addresses) {if (address.protocol() == QAbstractSocket::IPv4Protocol) {qDebug() << "IPv4 address:" << address.toString();} else if (address.protocol() == QAbstractSocket::IPv6Protocol) {qDebug() << "IPv6 address:" << address.toString();}
}

4.用于网络诊断和监控:

QNetworkInterface 可以帮助构建用于诊断和监控网络状态的工具。例如,查看设备上所有网络接口的状态、检测网络连接问题、获取接口相关信息等。

Chapter2 Qt|判断一个qstring是否包含某串字符

原文链接:https://blog.csdn.net/weixin_42964413/article/details/122925796

QString判断2个字符是否相同

    QString nameString = QString::fromLocal8Bit("admin");//判断方法一if(nameString == QString::fromLocal8Bit("admin")){qDebug() << "相同";}//判断方法二    if(nameString.compare(QString::fromLocal8Bit("admin")) == 0){qDebug() << "compare相同";}

QString判断是否包含某个字符串

    QString urlString = QString("http://baidu/deviceinfo");if(urlString.contains("deviceinfo",Qt::CaseSensitive)){qDebug() << "包含了";}

上面代码中Qt::CaseSensitivity 为枚举类型, 可取值Qt::CaseSensitive 和 Qt::CaseInsensitive, 表示匹配的灵敏度,

Qt::CaseSensitive 代表区分大小写;Qt::CaseInsensitive 代表不区分大小,可以自行尝试;

QString字符串的截取

    QString deviceString = QString("202010103102855125");QString deviceString1 = deviceString.mid(0,4);qDebug() << "deviceString1" << deviceString1;QString deviceString2 = deviceString.mid(4,2);qDebug() << "deviceString2" << deviceString2;

从QString mid(int position, int n = -1) const方法就可以看出来,第一个参数是截取位置,第二个参数是截取长度,可以自行尝试;

Chapter3 QT5修改windows电脑IP地址

原文链接:https://blog.csdn.net/fangye945a/article/details/84981525

1、QT修改IP地址程序原理

通过系统调用windows的dos命令来修改IP地址。

例如:netsh interface ip set address “WLAN” static 192.168.10.88 255.255.255.0 192.168.10.1

该条命令的意思是将名为WLAN的网卡的IP地址修改为静态IP,192.168.10.88,子网掩码为255.255.255.0,网关为192.168.10.1。

网卡名称查看:网络和共享中心→更改适配器设置

在这里插入图片描述

当然,也可以自行修改网卡名,只要保证dos命令中的网卡名跟实际网卡名一致即可。

在这里插入图片描述

2、QT调用dos命令

其实使用方法跟linux中的system()系统调用类似,这里是使用QProcess来调用。

首先包含头文件:

#include <QProcess>

然后参考如下代码修改IP:

QProcess *process = new QProcess();
QString cmd = "netsh interface ip set address ";
cmd +="\"WLAN\" ";     //网卡名称要加双引号
cmd +="static ";
cmd += ui->lineEdit()->text(); //从界面上获取IP地址
cmd +=" 255.255.255.0 ";
cmd += "192.168.10.1";
qDebug()<<"cmd = "<<cmd;
process->start(cmd);   //执行dos命令
process->waitForFinished(); //等待执行完成
delete process;         

注意命令dos命令之间的空格,程序执行结果如下:

在这里插入图片描述

3、注意事项

-------------------------------The last but not least --------------------------------------

打开QT时和打开发布的程序时,一定要以管理员身份运行,否则使用该方法修改不了IP。建议在qt程序 属性->兼容性 中勾选以管理员身份运行选项。

在这里插入图片描述

Chapter4 Qt Qprocess 调用linux命令修改ip地址(通过shell命令)

原文链接:https://blog.csdn.net/jhonsss/article/details/131224408

Qprocess类用于调用外部程序,可以和他们通信。接口建议去看qt官方文档

1.用ui画个简单的界面。

在这里插入图片描述

2.获取网卡,提供一个combox供用户选择

QList<QNetworkInterface> list = QNetworkInterface::allInterfaces();//获取网卡放到list中foreach (QNetworkInterface interface, list) {    //取出list节点中的QNetworkInterfaceqDebug()<<"Device:" <<interface.name();ui->devcieList->addItem(interface.name());//添加到combox中

3.点击update时完成修改对应text里的ip,跳转槽后开始编辑代码:

1.初始化一个Qstring对象用来存命令:

QString cmd = "sudo -S ifconfig ";cmd += ui->devcieList->currentText() + " "; //combox获取网卡cmd += ui->inputip->text();cmd += " netmask 255.255.255.0";cmd += " \n";qDebug() << "cmd" <<cmd;

2.声明一个Qprocess对象用来进行shell命令执行

QProcess process;process.setProcessChannelMode(QProcess::MergedChannels);process.start("bash");if(!process.waitForStarted()){qDebug() << "Failed to start process";return;}process.write(cmd.toUtf8());process.waitForBytesWritten();QString passwd = ui->passwd->text() + "\n";         //text上读取密码process.write(passwd.toUtf8());process.waitForBytesWritten();process.closeWriteChannel();process.waitForFinished();QString output = process.readAll();qDebug() << "output:" <<output;

setProcessChannelMode:设置process信道模式;

start:在新进程中启动给定程序,bash进入linux shell执行步骤;不阻塞状态;

write:开始读cmd中的命令行。

waitforBytesWritten:阻塞等待write结束。

这样输入新的ip地址后就可以修改linux本机的IP了,注意需要以管理员权限。

Chapter5 在windows10下面使用QProcess配置IP信息

原文链接:https://blog.csdn.net/xingchen_youyou/article/details/117522718

首先可以参考两篇文件,在windows下面使用cmd命令配置IP

和Qt Creator 应用程序带有管理员权限。

https://blog.csdn.net/xingchen_youyou/article/details/117522288

https://blog.csdn.net/xingchen_youyou/article/details/117521167

1、新建工程 应用程序 Qt Gui应用 pro文件增加 QT += core gui network

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、增加4个pushbutton,实现下面4个功能。

process1.readAllStandardOutput()会输出很多有用的信息(比如权限问题和命令语法问题),方便调试,因为直接process1.start(“cmd.exe”)跳不出cmd界面。使用cmd命令需要增加"/c"。其实/C 是 /Close的简写,是命令运行之后关闭窗口的意思。

//显示当前目录下的文件
void Widget::on_pushButton_clicked()
{QProcess process1(this);//process1.start("C:/Users/50338/Desktop/zeal-portable-0.6.1-windows-x64/zeal.exe"); //ok//process1.start("C:/Windows/System32/regedt32.exe");//process1.start("C:/Windows/System32/keygen.exe");//打不开QStringList list1;list1 << "/c" << "dir"; //增加这个Ok,没这个不行process1.start("cmd",list1);process1.waitForStarted();process1.waitForFinished();QString temp = QString::fromLocal8Bit(process1.readAllStandardOutput());qDebug() << "standard output:" << temp;qDebug() << "finish";
}//运行C:/keygen.exe命令
void Widget::on_pushButton_2_clicked()
{QProcess process1(this);process1.start("C:/keygen.exe");//okprocess1.waitForStarted();process1.waitForFinished();QString temp = QString::fromLocal8Bit(process1.readAllStandardOutput());qDebug() << "standard output:" << temp;qDebug() << "finish";
}//配置动态IP
void Widget::on_pushButton_3_clicked()
{QString cmdline1 = "netsh interface ipv4 set address name=\"WLAN\" source=dhcp";QProcess process1(this);QStringList list1;list1 << "/c" << cmdline1; //增加这个Ok 需要增加 /cprocess1.start("cmd",list1);process1.waitForStarted();process1.waitForFinished();QString temp = QString::fromLocal8Bit(process1.readAllStandardOutput());qDebug() << "standard output:" << temp;
}//配置静态IP和DNS
void Widget::on_pushButton_4_clicked()
{QString name = "WLAN";QString ip = "192.168.1.113";QString cmdline1 = "netsh interface ipv4 set address name= " + name + " source=static address=" + ip + " mask=255.255.255.0 gateway=192.168.1.201 gwmetric=1";//QString cmdline1 = "net localgroup administrators 50338 /add";QString cmdline2 = "set dnsservers name=" + name + "source=static address=192.168.1.201 register=primary";QStringList list2;list2 << "/c" << cmdline2;QProcess process1(this);QStringList list1;list1 << "/c" << cmdline1; //增加这个Okprocess1.start("cmd",list1);process1.waitForStarted();process1.waitForFinished();QString temp = QString::fromLocal8Bit(process1.readAllStandardOutput());qDebug() << "standard output 1:" << temp;process1.start("cmd",list2);process1.waitForStarted();process1.waitForFinished();temp = QString::fromLocal8Bit(process1.readAllStandardOutput());qDebug() << "standard output 2:" << temp;
}

Chapter6 手动修改ARM Linux的静态IP和用QT获取和修改IP

https://blog.csdn.net/weixin_30906185/article/details/98092961?spm=1001.2101.3001.6650.17&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-17-98092961-blog-7165287.235%5Ev43%5Epc_blog_bottom_relevance_base2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-17-98092961-blog-7165287.235%5Ev43%5Epc_blog_bottom_relevance_base2&utm_relevant_index=18

1 vi /etc/network/interfaces
2 #   找到“# Wired or wireless interfaces”
3 2、注释掉 iface eth0 inet dhcp  这是自动获取ip地址
4 3、增加下面语句:
5          iface eth0 inet static
6          address 192.168.1.79
7          netmask 255.255.255.0
8          network 192.168.1.0
9          gateway 192.168.1.1
10 4、保存
11 5、/etc/init.d/networking restart

如何用QT获取和修改IP【转载】

http://blog.csdn.net/a15868717540/article/details/7165287

这是第一种方式

//读取部分QSettings *ConfigIni = new QSettings("/etc/eth0-setting",QSettings::IniFormat,0);ui->ipInfoLineEdit->setText(ConfigIni->value("IP").toString());//IP地址ui->maskInfoLineEdit->setText(ConfigIni->value("Mask").toString()); //子网掩码ui->gatewayInfoLineEdit->setText(ConfigIni->value("Gateway").toString());//子网掩码ui->dnsInfoLineEdit->setText(ConfigIni->value("DNS").toString());//DNSui->macInfoLineEdit->setText(ConfigIni->value("MAC").toString());//mac//修改部分void ipset::ipconfig_set_infile()
{//删除原有配置文件QDir rmfile;rmfile.remove("/etc/eth0-setting");//WINDOWS下就可以不用这两句QSettings *ipConfigIni = new QSettings("/etc/eth0-setting",QSettings::IniFormat,0);ipConfigIni->setIniCodec("UTF-8");           //设置文件格式为UTF-8ipConfigIni->setValue("IP",ui->ipInfoLineEdit->text());//写入配置文件中Ip配置参数ipConfigIni->setValue("Mask",ui->maskInfoLineEdit->text());//写入配置文件中Mask配置参数ipConfigIni->setValue("Gateway",ui->gatewayInfoLineEdit->text());//写入配置文件中Gateway配置参数ipConfigIni->setValue("DNS",ui->dnsInfoLineEdit->text());ipConfigIni->setValue("MAC",ui->macInfoLineEdit->text());}

函数时用Qt下的QSttings。相关内容大家自己看
需要注意的是在linux下,覆盖不了原文件,需要调用QDir::remove函数,先删除再生成。

WINDOWS下就直接覆盖的。

第二种方法是采用QT自带的函数QList< QNetworkInterface >

用这个类可以获取系统底层的网络参数,经过实践是可行的,我参考的文章:http://qt.csdn.net/articles.aspx?pointid=489&pointid2=7

 QList<QNetworkInterface> list = QNetworkInterface::allInterfaces();//获取所有网络接口的列表foreach(QNetworkInterface interface,list){  //遍历每一个网络接口if(interface.name()=="eth0")//我的端口是eth0,你的需要根据自己的来判断{qDebug() << "Device: "<<interface.name();//设备名qDebug() << "HardwareAddress: "<<interface.hardwareAddress();//硬件地址QList<QNetworkAddressEntry> entryList = interface.addressEntries();//获取IP地址条目列表,每个条目中包含一个IP地址,一个子网掩码和一个广播地址foreach(QNetworkAddressEntry entry,entryList){  //遍历每一个IP地址条目if( entry.ip().toString().size() < 16)//区分IPV6和IPV4{qDebug()<<"IP Address: "<<entry.ip().toString();//IP地址qDebug()<<"Netmask: "  <<entry.netmask().toString();//子网掩码qDebug()<<"Broadcast: "<<entry.broadcast().toString();//广播地址ui->ipInfoLineEdit->setText(entry.ip().toString());ui->maskInfoLineEdit->setText(entry.netmask().toString());ui->gatewayInfoLineEdit->setText(entry.broadcast().toString());

上面这段是参考网上的代码写的,根据网卡数量需要,自己写下判断就行了。

Chapter7 Win下,Qt更改电脑IP、子网掩码和网关

原文链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/58042.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

KEYSIGHT E4980A是德E4980AL 精密LCR表

Keysight E4980A 精密 LCR 表为各种元件测量提供了精度、速度和多功能性的最佳组合。 E4980A 在低阻抗和高阻抗范围内提供快速测量速度和出色的性能&#xff0c;是元件和材料的一般研发和制造测试的终极工具。 LAN、USB 和 GPIB PC 连接可提高您的设计和测试效率。 Keysight E4…

大语言模型的Scaling Law【Power Low】

NLP-大语言模型学习系列目录 一、注意力机制基础——RNN,Seq2Seq等基础知识 二、注意力机制【Self-Attention,自注意力模型】 三、Transformer图文详解【Attention is all you need】 四、大语言模型的Scaling Law【Power Low】 文章目录 NLP-大语言模型学习系列目录一、什么是…

练习LabVIEW第十九题

学习目标&#xff1a; 刚学了LabVIEW&#xff0c;在网上找了些题&#xff0c;练习一下LabVIEW&#xff0c;有不对不好不足的地方欢迎指正&#xff01; 第十九题&#xff1a; 创建一个程序把另外一个VI的前面板显示在Picture控件中 开始编写&#xff1a; 在前面板放置一个二…

iOS AVAudioSession 详解【音乐播放器的配置】

前言 在 iOS 音频开发中&#xff0c;AVAudioSession 是至关重要的工具&#xff0c;它控制着应用的音频行为&#xff0c;包括播放、录音、后台支持和音频中断处理等。对于音乐播放器等音频需求强烈的应用&#xff0c;设计一个合理的 AVAudioSession 管理体系不仅能保证音频播放…

一文详解高光谱数据python处理包spectral(SPy)

一、基本操作 读取高光谱数据文件 import spectral # 读取ENVI格式的高光谱图像 # image的后缀可以是.raw、.spe、.lan等 # 代码里img对象&#xff0c;类似于rasterio库的dataset对象&#xff0c;可以用它来读取高光谱数据 img spectral.envi.read_envi(filemy_data.hdr, im…

【LeetCode】修炼之路-0008- String to Integer (atoi)【python】

题目 基本思路 其实题目已经说了如何实现了&#xff0c;我们按照给定的思路实现即可 1. 问题四大要求详解 1.1 处理空格 (Whitespace) 忽略字符串开头的任何空格字符 (" ")例如: " 123" 应该被处理为 “123”Python实现: 可以使用 strip() 方法或循环处…

Python浪漫之星星与文字构造的错位图

效果图&#xff1a; 完整代码&#xff1a; import tkinter as tk import random import math from tkinter.constants import *width 888 height 500 heartx width / 2 hearty height / 2 side 11class Star:def __init__(self, canvas, x, y, size):self.canvas canvas…

精准医疗沟通新体验:开源语音识别(ASR)如何提升医生与患者对话

需求背景&#xff1a;一家远程医疗公司在为偏远地区提供在线医疗服务的过程中&#xff0c;发现传统手动记录方式效率太低&#xff0c;无法满足需求&#xff0c;影响就诊的效率。 解决方案&#xff1a;使用思通数科的ASR平台&#xff0c;公司可以实现多话者对话转录和自动病历生…

MySql中的事务、MySql事务详解、MySql隔离级别

文章目录 一、什么是事务&#xff1f;二、事务四大特性ACID2.1、原子性&#xff08;Atomicity&#xff09;2.2、一致性&#xff08;Consistency&#xff09;2.3、隔离性&#xff08;Isolation&#xff09;2.4、持久性&#xff08;Durability&#xff09; 三、事务操作/事务的用…

MySQL-27.多表查询-案例

一.数据准备 -- 分类表 create table category (id int unsigned primary key auto_increment comment 主键ID,name varchar(20) not null unique comment 分类名称,type tinyint unsigned not null comment 类型 1 菜品分类 2 套餐分类,sort …

今日所学1024和1026

1 简便方法&#xff1a; 在文件夹里找到dll的文件路径&#xff0c;然后在系统变量里添加对应路径&#xff0c; 就不会报错了。 2关于报Qt插件的错,解决办法如下 1026Github的2FA 超级详细的github双重验证密码忘记或者获取不了了怎么办&github recovery code忘记怎么办…

计算机网络:网络层 —— IPv4 地址与 MAC 地址 | ARP 协议

文章目录 IPv4地址与MAC地址的封装位置IPv4地址与MAC地址的关系地址解析协议ARP工作原理ARP高速缓存表 IPv4地址与MAC地址的封装位置 在数据传输过程中&#xff0c;每一层都会添加自己的头部信息&#xff0c;最终形成完整的数据包。具体来说&#xff1a; 应用层生成的应用程序…

洛谷 P3130 [USACO15DEC] Counting Haybale P

原题链接 题目本质&#xff1a;线段树 感觉我对线段树稍有敏感&#xff0c;线段树一眼就看出来了&#xff0c;思路出来得也快&#xff0c;这道题也并不是很难。 解题思路&#xff1a; 这道题能看出来是线段树就基本成功一半了&#xff0c;区间修改区间查询&#xff0c;就基…

「二叉树进阶题解:构建、遍历与结构转化全解析」

文章目录 根据二叉树创建字符串思路代码 二叉树的层序遍历思路代码 二叉树的最近公共祖先思路代码 二叉搜索树与双向链表思路代码 从前序与中序遍历序列构造二叉树思路代码 总结 根据二叉树创建字符串 题目&#xff1a; 样例&#xff1a; 可以看见&#xff0c;唯一特殊的就…

深度学习-循环神经网络-LSTM对序列数据进行预测

项目简介: 使用LSTM模型, 对文本数据进行预测, 每次截取字符20, 对第二十一个字符进行预测, LSTM层: units100, activationrelu Dense层: units输入的文本中的字符种类, 比如我使用的文本有644个不同的字符, 那么units64 激活函数: 因为是多分类, 使用softmax 因为这是最…

使用Vue.js构建响应式Web应用

&#x1f496; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4bb; Gitee主页&#xff1a;瑕疵的gitee主页 &#x1f680; 文章专栏&#xff1a;《热点资讯》 使用Vue.js构建响应式Web应用 1 引言 2 Vue.js简介 3 安装Vue CLI 4 创建Vue项目 5 设计应用结构 6 创建组件 7 使用…

2024“源鲁杯“高校网络安全技能大赛-Misc-WP

Round 1 hide_png 题目给了一张图片&#xff0c;flag就在图片上&#xff0c;不过不太明显&#xff0c;写个python脚本处理一下 from PIL import Image ​ # 打开图像并转换为RGB模式 img Image.open("./attachments.png").convert("RGB") ​ # 获取图像…

GCN+BiLSTM多特征输入时间序列预测(Pytorch)

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 GCNBiLSTM多特征输入时间序列预测&#xff08;Pytorch&#xff09; 可以做风电预测&#xff0c;光伏预测&#xff0c;寿命预测&#xff0c;浓度预测等。 Python代码&#xff0c;基于Pytorch编写 1.多特征输入单步预测…

【大数据学习 | kafka】kafuka的基础架构

1. kafka是什么 Kafka是由LinkedIn开发的一个分布式的消息队列。它是一款开源的、轻量级的、分布式、可分区和具有复制备份的&#xff08;Replicated&#xff09;、基于ZooKeeper的协调管理的分布式流平台的功能强大的消息系统。与传统的消息系统相比&#xff0c;KafKa能够很好…

MySQL-DQL练习题

文章目录 简介初始化表练习题 简介 本节简介: 主要是一些给出一些习题, 关于DQL查询相关的, DQL查询语句是最重要的SQL语句, 功能性最复杂, 功能也最强, 所以本节建议适合以及有了DQL查询基础的食用, 另外注意我们使用的是Navicat, SQL编辑的格式规范也是Navicat指定的默认格式…