【Linux】-学习笔记08
第五章、DNS域名解析服务器
目录
第五章、DNS域名解析服务器
1.简介
1.1DNS简介
1.2因特网的域名结构
1.3域名服务器的类型划分
1.4DNS域名解析的过程
递归查询(左侧)
迭代查询(右侧)
2.DNS服务器配置
2.1关于服务端
2.2DNS的安装与启用
3.DNS的正向解析
4.DNS的反向解析
5.DNS多向解析方案
5.1配置实验环境
5.2实验内容
5.3测试
6.主从DNS服务器
6.1配置实验环境
6.2测试
1.简介
1.1DNS简介
DNS(Domain Name System)是互联网上的一项服务,它作为将域名和IP地址相互映射的一个分
布式数据库,能够使人更方便的访问互联网。
DNS使用的是53端口,
通常DNS是以UDP这个较快速的数据传输协议来查询的,但是没有查询到完整的信息时,就会再次以TCP这个协议来重新查询所以启动DNS时,会同时启动TCP以及UDP的port53。
1.2因特网的域名结构
- 由于因特网的用户数量较多,所以因特网在命名时采用的是层次树状结构的命名方法。任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名(domain name)。“域”(domain)是名字空间中一个可被管理的划分。
- 国家顶级域名:采用ISO3166的规定。如:cn代表中国,us代表美国,uk代表英国,等等。国家域名又常记为ccTLD(country code top-level domains,cc表示国家代码contry-code)。
- 通用顶级域名:最常见的通用顶级域名有7个,即:com(公司企业),net(网络服务机构),org(非营利组织),int(国际组织),gov(美国的政府部门),mil(美国的军事部门)。
- 基础结构域名(infrastructure domain):这种顶级域名只有一个,即arpa,用于反向域名解析,因此称为反向域名。
1.3域名服务器的类型划分
根域名服务器:最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。不管是哪一个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助根域名服务器。所以根域名服务器是最重要的域名服务器。假定所有的根域名服务器都瘫痪了,那么整个DNS系统就无法工作。需要注意的是,在很多情况下,根域名服务器并不直接把待查询的域名直接解析出IP地址,而是告诉本地域名服务器下一步应当找哪一个顶级域名服务器进行查询。
全球一共投放13个根服务器,根服务器主要用来管理互联网的主目录,全世界只有13台。1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本。所有根服务器均由美国政府授权的互联网域名与号码分配机构ICANN统一管理,负责全球互联网域名根服务器、域名体系和IP地址等的管理。 这13台根服务器可以指挥Firefox或互联网 Explorer这样的Web浏览器和电子邮件程序控制互联网通信。换句话说——攻击整个因特网最有力、最直接,也是最致命的方法恐怕就是攻击根域名服务器了。
在与现有IPv4根服务器体系架构充分兼容基础上,由我国下一代互联网国家工程中心领衔发起的“雪人计划”于2016年在美国、日本、印度、俄罗斯、德国、法国等全球16个国家完成25台IPv6(互联网协议第六版)根服务器架设,事实上形成了13台原有根加25台IPv6根的新格局,为建立多边、民主、透明的国际互联网治理体系打下坚实基础。中国部署了其中的4台,由1台主根服务器和3台辅根服务器组成,打破了中国过去没有根服务器的困境。
顶级域名服务器:负责管理在该顶级域名服务器注册的二级域名。
权限域名服务器:负责一个“区”的域名服务器。
本地域名服务器:本地域名服务器不属于域名服务器的层次结构,但是它对域名系统非常重要。当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。
主从DNS服务器:为了提高域名服务器的可靠性,DNS域名服务器都把数据复制到几个域名服务器来保存,其中的一个就是主DNS服务器(Master name server),负责解析至少一个域。其他的是辅助(从)DNS服务器(Slave name server):负责解析至少一个域,是主DNS服务器的辅助。当主域名服务器出故障时,辅助域名服务器可以保证DNS的查询工作不会中断。主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行。这样就保证了数据的一致性。
1.4DNS域名解析的过程
递归查询(左侧)
- 浏览器发起解析请求:用户在浏览器中输入网址(如www.bilibili.com),浏览器向本地 DNS 服务器发送解析请求。
- 本地 DNS 服务器发送解析请求:本地 DNS 服务器收到请求后,将请求转发给解析器 DNS 客户端。
- 解析器 DNS 客户端返回结果:解析器 DNS 客户端查询自己的缓存,如果有结果则直接返回 IP 地址给本地 DNS 服务器;如果没有,则进行下一步。
- 本地 DNS 服务器返回结果:本地 DNS 服务器将 IP 地址返回给浏览器,完成解析。
迭代查询(右侧)
- 浏览器发起解析请求:用户在浏览器中输入网址(如www.bilibili.com),浏览器向本地 DNS 服务器发送解析请求。
- 本地 DNS 服务器查询根域名服务器:本地 DNS 服务器向根域名服务器发送请求,询问.com 域名服务器的地址。
- 根域名服务器返回.com 域名服务器地址:根域名服务器返回.com 域名服务器的地址给本地 DNS 服务器。
- 本地 DNS 服务器查询.com 域名服务器:本地 DNS 服务器向.com 域名服务器发送请求,询问bilibili.com域名服务器的地址。
- .com 域名服务器返回bilibili.com域名服务器地址:.com 域名服务器返回bilibili.com域名服务器的地址给本地 DNS 服务器。
- 本地 DNS 服务器查询bilibili.com域名服务器:本地 DNS 服务器向bilibili.com域名服务器发送请求,询问www.bilibili.com的 IP 地址。
- bilibili.com域名服务器返回 IP 地址:bilibili.com域名服务器返回www.bilibili.com的 IP 地址给本地 DNS 服务器。
- 本地 DNS 服务器返回 IP 地址:本地 DNS 服务器将 IP 地址返回给浏览器,完成解析。
2.DNS服务器配置
2.1关于服务端
软件安装包 | bind |
服务名称 | named |
主配置文件 | /etc/named.conf |
数据目录 | /var/named |
端口 | tcp/53 udp/53 |
2.2DNS的安装与启用
下载并启动软件包
dnf install bind -ysystemctl enable --now named
修改配置文件
vim /etc/resolv.conf
这个文件用于配置 DNS(域名系统)客户端的设置。它主要指定了系统将用于域名解析的 DNS 服务器的 IP 地址。
此时dig www.baidu.com
设置vim /etc/named.conf
该文件用于配置 BIND DNS 服务器的全局参数、区域(zone)定义和访问控制等。它决定了 DNS 服务器如何运行和响应域名解析请求。
在本地所有网络接口上开启53端口
listen-on port 53 { any; };
允许查询A记录的客户端列表
allow-query { any; };
禁用dns检测使dns能够缓存外部信息到本机
dnssec-validation no;
高速缓存配置参数
forwarders {144.144.144.144;};
重启服务
systemctl restart named
dig百度
dig www.baidu.com
其他主机
3.DNS的正向解析
DNS正向解析的作用
当客户设定当前dns服务器为dns解析服务器时,正向解析即为客户提供A记录客户提供域名,dns服务器负责把域名解析成对应IP.
修改配置文件
vim /etc/named.rfc1912.zoneszone "timinglee.org" IN {type master;file "timinglee.org.zone";allow-update { none; };
};
该文件主要用于配置 DNS 服务器所管理的域名区域。它定义了正向查找区域(将域名转换为 IP 地址)和反向查找区域(将 IP 地址转换为域名)。
zone "timinglee.org" IN
:定义了一个名为timinglee.org
的域名区域。type master
:表示该区域是主区域,即该 DNS 服务器是这个区域数据的权威来源。file "timinglee.org.zone"
:指定了该区域数据存储的文件路径。这个文件通常包含域名和对应的 IP 地址记录等信息。allow - update { none; }
:设置不允许动态更新这个区域的数据。
根据zones文件中的指定生成A记录文件
[root@localhost named]# cp -p named.localhost timinglee.org.zone
[root@localhost named]# vim timinglee.org.zone
在timinglee.org.zone
中修改如下内容
改为该内容(注意加点)
dig www.timinglee.org
在查询结果时会有几种反馈值
状态码 | 状态码含义 |
---|---|
NOERROR | 查询成功 |
REFUSED | 查询被拒绝 |
SERVFAIL | 查询失败 |
NXDOMAIN | 查询无此结果 |
邮件解析
在在timinglee.org.zone
中修改如下内容
测试
4.DNS的反向解析
DNS反向解析的作用
当客户设定当前dns服务器为dns解析服务器时,正向解析即为客户提供PRT记录
客户提供域名,dns服务器负责把域名解析成对应IP
修改配置文件
vim /etc/named.rfc1912.zones
zone "254.25.172.in-addr.arpa" IN {type master;file "172.25.254.ptr";allow-update { none; };
};
zone "254.25.172.in - adr.arpa"
:定义了一个反向查找区域,对应 IP 地址段172.25.254.x
。type master
:同样表示这是主区域。file "
172.25.254.ptr
"
:指定了存储反向查找区域数据的文件。allow - update { none; }
:不允许动态更新。
进入/var/named
,进行如下操作
cd /var/named
[root@localhost named]# cp -p named.loopback 172.25.254.ptr
[root@localhost named]# vim 172.25.254.ptr
修改172.25.254.ptr
文件
重启服务,测试
5.DNS多向解析方案
我们可以在DNS中通过访问设置,让不同网段的服务器都解析到自己网段的相应地址
5.1配置实验环境
192.168.0.200
主机配置的网络
172.25.254.135
主机配置的网络
5.2实验内容
设置172.25.254.135的/etc/resolv.conf
dig www.timinglee.org
设置192.168.0.200的/etc/resolv.conf
dig www.timinglee.org
在172.25.254.135中
[root@localhost named]# cp -p timinglee.org.zone timinglee.org.192vim timinglee.org.192
复制新的文件/etc/named.rfc1912.zones.192
cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.192 -p
vim /etc/named.rfc1912.zones.192
修改该文件内容如下:
接着对vim /etc/named.conf
进行配置
注释在主配置文件中默认的zone语句块
/*
zone "." IN {type hint;file "named.ca";
};
include "/etc/named.rfc1912.zones";
*/添加view语句块来限制访问数据走向
view 192 {match-clients {192.168.0.0/24;};zone "." IN {type hint;file "named.ca";};#在这里表示只有源 IP 地址属于 192.168.0.0/24 这个网段的客户端请求才会应用这个视图下配置的域名 解析规则等相关设置。通过这样的配置,可以针对特定网段的客户端提供差异化的域名服务策略。include "/etc/named.rfc1912.zones.192";#通常这个文件会包含针对 192.168.0.0/24 网段客户端的特定域名区域(如正向解析区、反向解析区等) 配置信息,使得对于该网段客户端的域名解析行为可以按照这个包含文件里设定的规则来进行,实现了基于特 定网段的定制化域名服务配置。};view any {match-clients {any;};zone "." IN {type hint;file "named.ca";};include "/etc/named.rfc1912.zones";};
如下图所示
实验内容配置完成
5.3测试
我们在172.25.254.135主机上测试
dig www.timinglee.org
在主机192.168.0.200中测试
dig www.timinglee.org
6.主从DNS服务器
为了提高域名服务器的可靠性,DNS域名服务器都把数据复制到几个域名服务器来保存,其中的一个就是主DNS服务器(Master name server),负责解析至少一个域。其他的是辅助(从)DNS服务器(Slave name server):负责解析至少一个域,是主DNS服务器的辅助。当主域名服务器出故障时,辅助域名服务器可以保证DNS的查询工作不会中断。主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行。这样就保证了数据的一致性。
6.1配置实验环境
在辅助DNS中操作:
首先安装dnf install bind -y
接着修改/etc/named.conf
listen-on port 53 { any; };
#外部网络中的客户端能够向该域名服务器发起域名解析请求allow-query { any; };
#允许来自任何网络位置(IP 地址)的客户端向这个域名服务器进行 DNS 查询,也就是没有对查询请求的来源进行限制,只要能够与服务器建立网络连接并向端口 53 发送符合 DNS 协议的请求,服务器都会进行处理并尝试给出相应的域名解析结果。dnssec-validation no;
#关闭域名系统安全扩展
接着修改vim /etc/named.rfc1912.zones
添加如下内容
zone "timinglee.org" IN {type slave;masters{ 192.168.0.100; };file "slaves/timinglee.org.192";
};
修改/etc/resolv.conf
为如下内容
在主DNS中:
修改/etc/resolv.conf
为如下内容
6.2测试
两台测试主机
192.168.0.100
和192.168.0.200
在192.168.0.100
中
在192.168.0.200
中
但是此时数据不能同时同步
在主DNS中的vim /etc/named.rfc1912.zones.192
配置
添加语句
also-notify {192.168.0.200;};
#表示当主服务器上对应的 DNS 区域数据有更新时,除了按照正常流程通知相关从服务器外,还会主动向 IP 地址为 192.168.0.200 的服务器发送通知消息,告知其区域数据已经更新,
同时修改timinglee.org.192中的内容为
设置serial的值为1
1 ; serial
0 ; serial #serial(序列号)用于标识 DNS 区域数据的版本情况,每次对该区域的 DNS 记录有修改更新时,都应该递增这个序列号(常见的做法是以时间戳或者简单的递增数字来表示),以便辅助其他从服务器(Slave DNS Server)判断是否需要进行区域数据的更新同步,这里初始设置为 0,后续更新时要记得修改该值。 1D ; refresh #refresh(刷新时间)规定了从服务器向主服务器查询区域数据是否有更新的时间间隔,这里设置为 1 天,表示从服务器每隔 1 天会主动向主服务器询问该区域的数据是否有更新,若有更新就进行同步。 1H ; retry #retry(重试时间)指的是当从服务器向主服务器发起更新查询但没有得到响应时,再次尝试查询的时间间隔,这里设置为 1 小时,意味着从服务器在初次查询未成功后,会每隔 1 小时再次尝试向主服务器询问区域更新情况。 1W ; expire #expire(过期时间)确定了从服务器在多长时间内没有成功获取到主服务器的区域更新信息后,就认为该区域数据已经过期不可用,此处设置为 1 周(1 星期),也就是如果从服务器连续 1 周都没能从主服务器那里更新到数据,就会认为当前的区域数据失效,不再使用并等待后续能成功更新后再恢复使用。 3H ) ; minimum #minimum(最小 TTL)用于指定该区域内所有 DNS 记录在没有单独设置 $TTL 时的默认生存时间下限,这里设置为 3 小时,意味着即便某个 DNS 记录没有明确自己的 $TTL 值,它在缓存中的最短存活时间也会是 3 小时。
此时修改后的内容也同步到了另一台主机
相关文章:
【Linux】-学习笔记08
第五章、DNS域名解析服务器 目录 第五章、DNS域名解析服务器 1.简介 1.1DNS简介 1.2因特网的域名结构 1.3域名服务器的类型划分 1.4DNS域名解析的过程 递归查询(左侧) 迭代查询(右侧) 2.DNS服务器配置 2.1关于服务端 …...
RFdiffusion Denoise类解读
Denoise 类为蛋白质结构扩散模型的实现提供了核心功能,通过灵活的噪声调度、潜力场引导和子结构对齐,使得模型可以生成物理合理的结构序列,并在每个时间步迭代更新蛋白质的坐标和结构信息。 源代码: def get_next_frames(xt, px0, t, diffuser, so3_type, diffusion_mask,…...
HTML5 拖拽 API 深度解析
一、HTML5 拖拽 API 深度解析 1.1 背景与发展 HTML5 的拖拽 API 是为了解决传统拖拽操作复杂而设计的。传统方法依赖鼠标事件和复杂的逻辑计算,而 HTML5 提供了标准化的拖拽事件和数据传递机制,使得开发者能够快速实现从一个元素拖拽到另一个元素的交互…...
Vue 的生命周期钩子函数是什么?常见的生命周期钩子有哪些?
Vue 的生命周期钩子函数 Vue 的生命周期钩子函数是 Vue 组件在不同生命周期阶段自动调用的函数。生命周期分为创建、挂载、更新和销毁等阶段。理解这些钩子函数对于开发和调试 Vue 应用至关重要,因为它们使我们能够在组件生命周期的不同阶段执行特定的操作。 目录…...
uniapp中导入uview或者uview plus
关于SCSS uview-plus依赖SCSS,您必须要安装此插件,否则无法正常运行。 如果您的项目是由HBuilder X创建的,相信已经安装scss插件,如果没有,请在HX菜单的 工具->插件安装中找到"scss/sass编译"插件进行安…...
3D 生成重建017-StyleGaussian用文本或图像对你的3DGS内容进行风格迁移
3D 生成重建017-StyleGaussian用文本或图像对你的3DGS内容进行风格迁移 文章目录 0 论文工作1 论文方法2 实验结果 0 论文工作 论文 “StyleGaussian: Instant 3D Style Transfer with Gaussian Splatting” 介绍了一种新颖的3D风格迁移方法 StyleGaussian,该方法通…...
【adb】iqoo系统精简垃圾内置应用
免责声明 这个得谨慎点,虽然我验证过两部手机和不同版本的系统,但是总会有特殊的存在、 本教程来自于互联网搜集整理, 按照本教程造成的用户设备硬件或数据损失,本人概不承担任何责任,如您不同意此协议,请不…...
Golang 字符串字面量表示方法
文章目录 1.普通字符串字面量(Double-Quoted String Literals)2.原始字符串字面量(Raw String Literals)3.字节字符串字面量(Byte Slice Literals)4.码值表示字符串字面量Unicode 转义序列UTF8 转义序列十六…...
【uni-app 微信小程序】新版本发布提示用户进行更新
知识准备 uni.getUpdateManager文档介绍 不支持APP与H5,所以在使用的时候要做好平台类型的判断,如何判断,参考条件编译处理多端差异 代码参考 export const updateApp () > {const updateManager uni.getUpdateManager()updateManag…...
Leetcode 739-每日温度
请根据每日 气温 列表 temperatures ,请计算在每一天需要等几天才会有更高的温度。如果气温在这之后都不会升高,请在该位置用 0 来代替。 题解(单调递减栈) 什么时候用单调栈呢? 通常是一维数组,要寻找任…...
Gitee配置以及如何将本地项目提交到远程仓库
文章目录 准备远程仓库配置注册新建仓库 配置git 生成ssh,输入以下命令,然后连敲三次回车键配置公钥本地代码上传 准备 1.本地下载git 2.注册远程仓库账号 远程仓库配置 注册 官网:https://gitee.com 完成注册 新建仓库 头像->设置-…...
爬虫项目基础知识详解
文章目录 Python爬虫项目基础知识一、爬虫与数据分析1.1 Python中的requests库Requests 库的安装Requests 库的 get() 方法爬取网页的通用代码框架HTTP 协议及 Requests 库方法Requests 库主要方法解析 1.2 python中的json库1.3 xpath学习之python中lxml库html了解html结构html…...
【Leetcode Top 100 - 扩展】876. 链表的中间结点
问题背景 给你单链表的头结点 h e a d head head,请你找出并返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 数据约束 链表的结点数范围是 [ 1 , 100 ] [1, 100] [1,100] 1 ≤ N o d e . v a l ≤ 100 1 \le Node.val \le 100 1≤…...
16-01、JVM系列之:内存与垃圾回收篇(一)
JVM系列之:内存与垃圾回收篇(一) ##本篇内容概述: 1、JVM结构 2、类加载子系统 3、运行时数据区之:PC寄存器、Java栈、本地方法栈一、JVM与JAVA体系结构 JAVA虚拟机与JAVA语言并没有必然的联系,它只是与特…...
经典蓝牙(BT/EDR)蓝牙配对与连接
经典蓝牙的连接过程包括跳频,扫描,配置交换等过程。对ACL链路以及sco的连接过程也做详细的分析。 1. 为什么不配对便无法建立连接? 任何无线通信技术都存在被监听和破解的可能,蓝牙SIG为了保证蓝牙通信的安全性,采用…...
用 Python 从零开始创建神经网络(十四):L1 和 L2 正则化(L1 and L2 Regularization)
L1 和 L2 正则化(L1 and L2 Regularization) 引言1. Forward Pass2. Backward pass到此为止的全部代码: 引言 正则化方法旨在降低泛化误差。我们首先讨论的正则化形式是L1正则化和L2正则化。L1和L2正则化用于计算一个数值(称为惩…...
特殊的数学性质
一个数模9的结果等于它的每一位数相加和模9...
最长递增子序列&什么是继承性?C++中如何实现继承?继承的好处和注意事项有哪些?
最长递增子序列 方法一:暴力二维dp,初始状态:每个元素至少和自己构成一个上升序列,大小为1,状态转移:找到前面结尾数字小于当前数组元素的最长序列,当前位置的长度就是lenpre1. class Solutio…...
汽车IVI中控开发入门及进阶(三十五):架构QML App Architecture Best Practices
在Qt/QML工程的架构中,架构很重要,虽然本身它有分层,比如QML调用资源文件(图片等)显示GUI界面,后面的CPP文件实现界面逻辑,但是这个分类还有点粗。在实际开发中,界面逻辑也就是基于类cpp的实现,也开始使用各种面向对象的设计模式,实现更加优秀的开发架构,这点尤其在…...
面试题整理(二)
芯冰乐知识星球入口:芯冰乐...
编码及其代码
编码 形成文字所需bit点------有相应代号(编码---有好多种8/16/24/32)都已提前形成好,放哪哪就会形成那个文字 同一个文字在不同编码存的码不一样 用一种编码存的话,如果用另一种编码解析就会出现乱码 Windows默认编码为ANSI …...
python selenium(4+)+chromedriver最新版 定位爬取嵌套shadow-root(open)中内容
废话不多说,直接开始 本文以无界作为本文测试案例,抓取shadow-root(open)下的内容 shadow Dom in selenium: 首先先讲一下shadow Dom in selenium 版本的区别,链接指向这里 在Selenium 4版本 以及 chrom…...
AutoClass加载预训练实例
AutoClass 由于 Transformer 架构种类繁多,AtuoClass可以创建一个你想要的做模型架构。作为 🤗 Transformer 核心理念的一部分,使库易于使用、简单且灵活,可以AutoClass从给定的检查点自动推断和加载正确的架构。该from_pretrain…...
在 CentOS 上安装 NFS 服务器
文章目录 1. 在 CentOS 上安装 NFS 服务器1.1 安装 NFS 服务器软件包1.2 配置 NFS 共享目录1.3 配置 NFS 导出文件1.4 启动并启用 NFS 服务1.5 导出共享目录1.6 配置防火墙1.7 检查 NFS 状态 2. 在 CentOS 上安装 NFS 客户端2.1 安装 NFS 客户端软件包2.2 挂载 NFS 共享2.3 配置…...
utf8mb4_unicode_ci、utf8mb4_general_ci、utf8mb4_0900_ai_ci; Mysql 排序字符集的优缺点和选择
标题内容 Mysql的排序字符集真让人头疼,如果两个表的排序字符集不一致,还会导致在进行字段比较的时候直接报错。下面分析几个常用的字符集的优劣和选择。 utf8mb4_unicode_ci 特点 Unicode 标准兼容性高:它是基于 Unicode 标准的排序规则&a…...
星宸SSC8836Q/SSC8836Q-H
SSC8836Q产品是高度集成的多媒体片上系统(SoC)产品,适用于汽车和运动/运动相机等高分辨率智能视频录制和播放应用。 该芯片包括64位双核RISC处理器,先进的图像信号处理器(ISP),高性能的H.265/H。264/MJPEG视频编解码器,智能处理单…...
rk3576 , android14 , 编译, 卡死,android.bp , ninja
问题:我在 编译 android14 的时候, 卡死再 analysing android.bp 这里 ,卡了 3,4 个小时。肯定是有问题的。 如图&…...
3、.Net UI库:MaterialSkin - 开源项目研究文章
MaterialSkin 是一个开源的 WinForms 第三方库,提供了许多仿谷歌设计风格的组件,使得 WinForms 窗体程序更加美观。以下是 MaterialSkin 的一些关键特点和使用方法: 主要特点: 仿谷歌设计风格:MaterialSkin 提供了大量…...
2024年构建PHP应用开发环境
文章目录 前言选择合适的PHP版本安装与配置PHP环境Windows平台Linux平台macOS平台 集成Web服务器数据库连接与管理使用Composer进行依赖管理调试工具的选择代码质量管理部署与持续集成安全性考虑参考资料结语 前言 随着互联网的发展,PHP作为一门成熟的服务器端编程…...
苹果手机iPad投屏到安卓电视,不只有AirPlay一种方法,还可以无线远程投屏!
苹果品牌的设备一般都可以使用airplay功能,将一个屏幕投射到另一个屏幕上。如果是跨品牌或跨系统投屏,airplay就未必能够适应。 提供无线投屏和airplay投屏两种方式的AirDroid Cast已经推出TV版本。苹果手机或iPad可以选择无线(远程ÿ…...
什么是内网什么是外网?区别是什么
内网和外网是计算机网络中的两个基本概念,它们在定义、特点和使用场景上有显著的区别。虎观代理小二将带大家详细了解内网与外网的定义以及它们之间的主要差异,帮助读者更好地理解和应用这两种网络。 内网(局域网,LAN࿰…...
基于Springboot+Vue的在线答题闯关系统
基于SpringbootVue的在线答题闯关系统 前言:随着在线教育的快速发展,传统的教育模式逐渐向互联网教育模式转型。在线答题系统作为其中的一个重要组成部分,能够帮助用户通过互动式的学习方式提升知识掌握度。本文基于Spring Boot和Vue.js框架&…...
html css 图片背景透明
html css图标背景透明 css属性: background-color:transparent; mix-blend-mode: multiply; 完整HTML代码: <html><head><title>Test</title></head><body><div id"test" style"background-col…...
Servlet
一 Servlet Servlet (server applet) 是运行在服务端(tomcat)的Java小程序,是sun公司提供一套定义动态资源规范; 从代码层面上来讲Servlet就是一个接口 用来接收、处理客户端请求、响应给浏览器的动态资源。在整个Web应用中,Servlet主要负责接收处理请求…...
MySQL用法---MySQL Workbench创建数据库和表
1. 连接数据库 打开软件,点击左下角卡片,输入设置的数据库密码,勾选单选框 2. 了解主页面的组成部分 3. 创建数据库 先点击工具栏的创建按钮 再输入数据库名称 点击 Apply 创建 4. 创建数据表 展开数据库,在Tables上右键&…...
WordPress Elementor Page Builde 任意文件读取漏洞复现(CVE-2024-9935)
0x01 产品描述: WordPress Elementor Page Builder 是一款 WordPress 插件,它允许用户以可视化方式创建和编辑网页。0x02 漏洞描述: WordPress 的 Elementor Page Builder 插件的 PDF 生成器插件在 1.7.5 之前的所有版本中都容易受到路径遍历的攻击,包括 1.7.5 rtw_pgaepb_…...
静态链接和动态链接的特点
静态链接 链接方式:在编译时,所有依赖的库代码被直接打包到生成的可执行文件中。这意味着在程序运行时,不需要再加载任何外部库文件。 优点: 独立性强:生成的可执行文件可以在没有依赖库的系统上直接运行&am…...
内核流对象(Kernel Streaming Objects)
内核流对象(Kernel Streaming Objects)是 Windows 系统中用于处理音频、视频等流媒体数据的重要机制。让我详细解释其作用和主要组件: 1. 主要作用: c // 内核流的核心功能 - 音频/视频数据的实时处理 - 多媒体设备驱动开发 - 硬件与软件之间的数据流传…...
Java 在Json对象字符串中查找和提取特定的数据
1、在处理JSON数据时,需要提出个别字段的值,通过正则表达式提取特定的数据 public static void main(String[] args) {//定义多个JSON对象字符串类型,假设每个对象有a,b,c 字段String strJson "{\"a\":1.23,\"b\"…...
21、结构体成员分布
结构体中的成员并不是紧挨着分布的,内存分布遵循字节对齐的原则。 按照成员定义的顺序,遵循字节对齐的原则存储。 字节对齐的原则: 找成员中占据字节数最大的成员,以它为单位进行空间空配 --- 遇到数组看元素的类型 每一个成员距离…...
【深度学习】四大图像分类网络之ResNet
ResNet网络是在2015年由微软实验室中的何凯明等几位提出,在CVPR 2016发表影响深远的网络模型,由何凯明团队提出来,在ImageNet的分类比赛上将网络深度直接提高到了152层,前一年夺冠的VGG只有19层。斩获当年ImageNet竞赛中分类任务第…...
zookeeper学习
解决什么问题? 首先来分析下业务对象,才能对解决的问题进行归纳和总结。它解决的事分布式应用的问题,那么分布式应用会存在哪里问题是由它的业务特性来决定的,这些问题已是为了解决业务的问题。分布式的业务特征有哪些࿱…...
Monkey结合appium模拟操作特定界面
目录 1. 使用 Monkey 操作特定界面(通过UI标识来限制) 2. 结合 uiautomator 或 appium 定位特定元素 步骤: 3. 使用 Monkey Appium 控制特定界面点击 4. 如何结合 Appium 与 Monkey 5. 限制 Monkey 只点击固定界面上的元素 使用 --pc…...
智能指针【C++11】
文章目录 智能指针std::auto_ptr std::unique_ptrstd::shared_ptrstd::shared_ptr的线程安全问题std::weak_ptr 智能指针 std::auto_ptr 管理权转移 auto_ptr是C98中引入的智能指针,auto_ptr通过管理权转移的方式解决智能指针的拷贝问题,保证一个资源…...
plsql 执行存储过程 SYS_REFCURSOR
关键字:plsql 执行存储过程 SYS_REFCURSOR 在PL/SQL中,SYS_REFCURSOR是一种特殊的数据类型,用于表示引用游标,可以用来返回查询结果或者操作数据库中的结果集。 以下是一个使用SYS_REFCURSOR执行存储过程的例子: CR…...
git修改某次commit(白痴版)
第一步 在bash窗口运行 git rebase --interactive commitId^ 比如要改的commitId是 abcedf git rebase --interactive abcedf^键盘 按 i 或者 ins 进入编辑状态 进入insert 编辑状态 在bash窗口手动把对应commit前面的pick改为e或edit 按 esc 进入退出程序 输入 :wq 保存退出…...
设计模式:19、桥接模式
目录 0、定义 1、桥接模式的四种角色 2、桥接模式的UML类图 3、示例代码 0、定义 将抽象部门与实现部分分离,使它们都可以独立地变化。 1、桥接模式的四种角色 抽象(Abstraction):一个抽象类,包含实现者…...
闭包函数的基础知识
上期文章 1. 函数装饰器 2.闭包 2.1变量作用域 python有3种变量作用域 模块全局作用域:在类或函数外部分配定义的。函数局部作用域:通过参数或者在函数主体中定义的。第3种作用域:闭包中的变量环境 2.2全局变量和局部变量 def fun(a):print(a)print(b)fun(10)10---------…...
python3D圣诞树
import pygame import math from pygame.locals import *# 初始化Pygame pygame.init()# 设置屏幕尺寸和标题 width, height 800, 600 screen pygame.display.set_mode((width, height)) pygame.display.set_caption(3D 圣诞树)# 设置颜色 GREEN (34, 139, 34) BROWN (139,…...
博物馆导览系统方案(一)背景需求分析与核心技术实现
维小帮提供多个场所的室内外导航导览方案,如需获取博物馆导览系统解决方案可前往文章最下方获取,如有项目合作及技术交流欢迎私信我们哦~撒花! 一、博物馆导览系统的背景与市场需求 在数字化转型的浪潮中,博物馆作为文化传承和知…...