DNS 域名解析服务器详解以及相关实验

news2024/11/17 17:37:24

目录

一, 域名解析服务器的介绍

1, 因特网的域名结构

2, 域名服务器的类型划分

二,DNS 域名解析的过程

三,DNS 解析方式

四,搭建 DNS 服务器

1,使用命令yum install bind -y安装dns软件

2,使用命令rpm -ql bind可以查看软件相关的配置文件

3,使用命令vim /etc/named.conf打开文件

4,使用命令cat /etc/named.rfc1912.zones查看区域的配置

5,查看区域解析文件的配置

五,DNS域名解析实验

实验一:

正向解析

实验二:

逆向解析

实验三:

区域传送,主从同步


一, 域名解析服务器的介绍

DNSDomain Name System)是互联网上的一项服务,它作为将域名和 IP 地址

互(双向)映射的一个分布式数据库,能够使人更方便的访问互联网。

 

DNS 系统使用的是网络的查询,那么自然需要有监听的 portDNS 使用的是 53

端口,在/etc/services(搜索 domain)这个文件中能看到。通常 DNS 是以 UDP

这个较快速的数据传输协议来查询的,但是没有查询到完整的信息时,就会再次以

TCP 这个协议来重新查询。所以启动 DNS 时,会同时启动 TCP 以及 UDP 的

port53。

 

 

1, 因特网的域名结构

由于因特网的用户数量较多,所以因特网在命名时采用的是层次树状结构的命名

方法。任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名

字,即域名(domain name)。“域”(domain)是名字空间中一个可被管理的划分。

 

域名只是逻辑概念,并不代表计算机所在的物理地点。域名可分为三大类:

 

(1)国家顶级域名:采用 ISO3166 的规定。如:cn 代表中国,us 代表美国,uk 代

表英国,等等。国家域名又常记为 ccTLD(country code top-level domains,cc 表示国家代码 contry-code)。

 

(2)通用顶级域名:最常见的通用顶级域名有 7 个,即:com(公司企 t 业),ne(网

络服务机构),org(非营利组织),int(国际组织),gov(美国的政府部门),mil(美国

的军事部门)。

 

(3)基础结构域名(infrastructure domain):这种顶级域名只有一个,即 arpa,用于反向域名解析,因此称为反向域名。

 

 

 

2, 域名服务器的类型划分

分层管理,一层管理一层,上一层只管下一层

 

 

根据域名服务器起的作用,可以把域名服务器划分为以下类型:

(1)根域名服务器:最高层次的域名服务器,也是最重要的域名服务器。所有的

根域名服务器都知道所有的顶级域名服务器的域名和 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 台辅根服务器组成,打破了中国过去没有根服务器的困境。

 

(2)顶级域名服务器:负责管理在该顶级域名服务器注册的二级域名。

 

(3)权限域名服务器:负责一个“区”的域名服务器。

 

(4)本地域名服务器:本地域名服务器不属于域名服务器的层次结构,但是它对

域名系统非常重要。当一个主机发出 DNS 查询请求时,这个查询请求报文就发送

给本地域名服务器。

 

为了提高域名服务器的可靠性,DNS 域名服务器都把数据复制到几个域名服务器

来保存,其中的一个就是主 DNS 服务器(Master name server),负责解析至少一个域。其他的是辅助(从)DNS 服务器(Slave name server):负责解析至少一个域,是主 DNS 服务器的辅助。当主域名服务器出故障时,辅助域名服务器可以保证 DNS 的查询工作不会中断。主域名服务器定期把数据复制到辅助域名服务器

中,而更改数据只能在主域名服务器中进行。这样就保证了数据的一致性。

 

缓存 DNS 服务器:不负责解析域,只是缓存域名解析的结果。

 

 

 

二, DNS 域名解析的过程

 

 

1、在浏览器中输入 www . qq .com 域名,操作系统会先检查自己本地的 hosts 文

件是否有这个网址映射关系,如果有,就先调用这个 IP 地址映射,完成域名解

析。2、如果 hosts 里没有这个域名的映射,则查找本地 DNS 解析器缓存,是否有这个

网址映射关系,如果有,直接返回,完成域名解析。

3、如果 hosts 与本地 DNS 解析器缓存都没有相应的网址映射关系,首先会找

TCP/IP 参数中设置的首选 DNS 服务器,在此我们叫它本地 DNS 服务器,此服务

器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果

给客户机,完成域名解析,此解析具有权威性。

4、如果要查询的域名,不由本地 DNS 服务器区域解析,但该服务器已缓存了此网

址映射关系,则调用这个 IP 地址映射,完成域名解析,此解析不具有权威性。

5、如果本地 DNS 服务器本地区域文件与缓存解析都失效,则根据本地 DNS 服务

器的设置(是否设置转发器)进行查询,如果未用转发模式,本地 DNS 就把请求

发至 13 台根 DNS,根 DNS 服务器收到请求后会判断这个域名(.com)是谁来授权管

理,并会返回一个负责该顶级域名服务器的一个 IP。本地 DNS 服务器收到 IP 信息

后,将会联系负责.com 域的这台服务器。这台负责.com 域的服务器收到请求后,

如果自己无法解析,它就会找一个管理 qq.com 的 DNS 服务器地址给本地 DNS 服

务器。当本地 DNS 服务器收到这个地址后,就会找 qq.com 域服务器,重复上面

的动作,进行查询,直至找到 www . qq .com 主机。

6、如果用的是转发模式,本地 DNS 服务器就会把请求转发至上一级 DNS 服务

器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根 DNS 或把请

求转至上上级,以此循环。找到最后把结果返回给本地 DNS 服务器,由此 DNS 服

务器再返回给客户机。

 

注:从客户端到本地 DNS 服务器是属于递归查询,而 DNS 服务器之间使用

的交互查询就是迭代查询。

114.114.114.114 是国内移动、电信和联通通用的 DNS,手机和电脑端都可以使

用,干净无广告,解析成功率相对来说更高,国内用户使用的比较多,而且速度相

对快、稳定,是国内用户上网常用的 DNS。

8.8.8.8 是 GOOGLE 公司提供的 DNS,该地址是全球通用的,相对来说,更适合国

外以及访问国外网站的用户使用。

 

 

三,DNS 解析方式

正向解析:将 FQDN----->IP

反向解析:将 IP----->FQDN

FQDN:(Fully Qualified Domain Name)全限定域名:同时带有主机名和域名的名称。(通过符号“.”)

名字 -》 IP -》 正向解析

IP-》名字: 反向解析

 

在浏览器中输入了一个www.baidu.com, 按Enter键之后发生了什么?

1. DNS解析:IP+Port

2. TCP连接

3. 发送HTTP请求

1. DNS解析

(找到返回Ip,找不到看下一步)

操作者:浏览器

(1-4): 递归查询, (5-8): 迭代查询

递归查询(自己找),迭代查询(别人找)

    1)查询浏览器的缓存:   查到了返回IP给浏览器

    2)查询操作系统的缓存:  ipconfig/displaydns

    3)操作系统中/etc/hosts:  ip和名字的映射关系

    4)访问本地dns服务器,dns服务器给我返回解析后的IP

   

 

 5)本地域名服务器(114.114....)去访问根域名服务器(.), 根域名服务器不会解析(www.baidu.com),根域名服务器会告诉本地域名服务器:com顶级域名服务器在哪儿(IP)

   6)本地域名服务器(114.114....)去访问顶级域名服务器(com), com顶级域名服务器也不会解析(www.baidu.com), 顶级域名服务器会告诉本地域名服务器, baidu二级域名服务器在哪儿(IP)       

   7)本地域名服务器(114.114....)去访问二级域名服务器(baidu), baidu二级域名服务器也不会解析(www.baidu.com), 二级域名服务器会告诉本地域名服务器,www三级域名服务器在哪儿(ip)

   8)本地域名服务器(114.114....)去访问三级域名服务器(www), www三级服务器解析www.baidu.com,如果解析成功了,返回IP给本地域名服务器

本地域名服务器将IP返回给浏览器

四, 搭建 DNS 服务器

提供 DNS 服务的软件叫 bind,服务名是 named。

1,使用命令yum install bind -y安装dns软件

[root@wangjingjing ~]# yum install bind -y

2,使用命令rpm -ql bind可以查看软件相关的配置文件

[root@wangjingjing ~]# rpm -ql bind

(1)/etc: 配置文件

/etc/logrotate.d/named

/etc/named

/etc/named.conf

/etc/named.rfc1912.zones     地域

/etc/named.root.key           秘钥

/etc/rndc.conf            (rndc)  远程管理工具

/etc/rndc.key

/etc/rwtab.d/named

/etc/sysconfig/named   系统里面的配置

(2)/var/named/: 工作目录

/var/named

/var/named/data     存放数据

/var/named/dynamic      自动

/var/named/named.ca        预制13台根域名服务器的解析记录

/var/named/named.empty

/var/named/named.localhost

/var/named/named.loopback

/var/named/slaves       存放从根域名服务器同步过来的数据

(3)/var/log/named.log: 日志文件

/var/log/named.log

/etc/named.conf

/etc/named.rfc1912.zones

3,使用命令vim /etc/named.conf打开文件

[root@wangjingjing ~]# vim /etc/named.conf

(1)最后两行

include "/etc/named.rfc1912.zones";           此文件被引入named.conf文件中   区域的配置

include "/etc/named.root.key";               秘钥

主配置文件中的区域配置:

zone "." IN {                      “.”表示的是.这个区域  in 为Internet

        type hint;                      type为类型;类型为hint,根域名的解析

        file "named.ca";                   文件,相对路径   存在/var/named/named.ca

};

(2)选项

样例的配置路径:/usr/share/doc/bind*/sample/

acl black{                      访问控制列表  定义的名字(black)

172.16.0.0/16;

192.168.0.12;

192.168.0.18;

};

acl white{                      白名单

10.0.0.0/8;

192.168.0.0/24;

};

options{

allow-query{white;};

blackhole{black;};

}

 listen-on port 53 { 127.0.0.1; } ;               # 监听:{127.0.0.1} : 可以写ip,也可以写网段,自己定义的白名单或者黑名单

 listen-on-v6 port 53 { ::1; };              #ipv6

 directory       "/var/named";               # 工作目录

 dump-file       "/var/named/data/cache_dump.db";              # 备份的文件:/var/named/data

 statistics-file "/var/named/data/named_stats.txt";              # 统计的文件

 memstatistics-file "/var/named/data/named_mem_stats.txt";             # 内存的统计文件

 secroots-file   "/var/named/data/named.secroots";               # 安全的文件

 recursing-file  "/var/named/data/named.recursing";             #递归的文件

 allow-query     { localhost; };                                                        # 允许查询,允许哪些ip来访问服务器

(3)

        recursion yes;        允许递归

        dnssec-enable yes;     启动dns安全

        dnssec-validation yes;    启动dns安全验证

        managed-keys-directory "/var/named/dynamic";     存放秘钥的目录

        pid-file "/run/named/named.pid";        进程pid存放的文件位置

        session-keyfile "/run/named/session.key";      会话秘钥

        /* Changes/CryptoPolicy - Fedora Project Wiki */

        include "/etc/crypto-policies/back-ends/bind.config";            加密策略

(4)

logging {

        channel default_debug {

                file "data/named.run";      debug信息存放的位置

                severity dynamic;         级别是自动

        };

};

(5)

dns.baidu.com

www.baidu.com

dhcp.baidu.com

mail.baidu.com

ftp.baidu.com

这些dns,www,dhcp,mail,ftp:都是在baidu.com这个域名里的

然后在这个区域中:我们可以去解析这些名称 -> www.baidu.com  -> baidu.com  -> 去对应dns服务器 -》 解析域名-》IP

                                              file -> 配置的解析记录:dns解析的时候,遵循的规则,主要配置的就是IP和域名的映射关系

4,使用命令cat /etc/named.rfc1912.zones查看区域的配置

zone "localhost.localdomain" IN {

 type master;

 file "named.localhost";

 allow-update { none; };        允许哪些主机来更新dns;allow quire只允许查询,不允许配置

};

zone "localhost" IN {

 type master;

 file "named.localhost";

 allow-update { none; };

};

zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {

 type master;

 file "named.loopback";

 allow-update { none; };

};

zone "1.0.0.127.in-addr.arpa" IN {

 type master;

 file "named.loopback";

 allow-update { none; };

};

zone "0.in-addr.arpa" IN {

 type master;

 file "named.empty";

 allow-update { none; };

};

区域的配置:

zone "openlab.com(域名)" IN {

         type  master/slave/hint;  # 配置三选一:master:主域名服务器,slave: 从域名服务器,hint: 根域名服务器

         file    "区域解析文件路径"# 文件就是写的解析记录:要把一个域名解析成某一个IP, dns一般都会有缓存,而且从域名和主域名同步的数据的设置

         allow-update{IP/网段} # 允许哪些主机来更新

};

openlab.com -> FQDN : 正向解析:FQDN解析IP

配置格式:每一块或者每一行内容结束之后要加";"

zone "1.0.0.127.in-addr.arpa" IN {

        type master;

        file "named.loopback";

        allow-update { none; };

};

zone  "1.0.0.127.in-addr.arpa" IN {

}

.in-addr.arpa: 固定搭配,反向解析即将IP解析域名

5,查看区域解析文件的配置

使用命令vim /var/named/named.localhost随便打开一个文件查看

[root@wangjingjing ~]# vim /var/named/named.localhost

$TTL 1D                                                                          第一行

@       IN SOA  @ rname.invalid. (                              第二行

                                        0       ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

        NS      @                                                                    第三行

        A       127.0.0.1                                                         第四行

        AAAA    ::1                                                                 第五行

2-5条 IN SOA ;  NS  ;A;AAAA;   :resource record  资源记录

TTL 1D: 缓存时间

资源记录

RR:资源记录的类型

SOA:  起始授权记录: Name: value

第一条记录:

@       IN SOA  @ rname.invalid. (

                                        0       ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

@: 代表就是:zone "openlab.com" -> @-> openlab.com

IN: internet

SOA: 当前记录是起始授权记录:肯定是区域解析文件的第一条记录

@:代表主域名服务器的域名 -》 openlab.com  -> 代表的是主DNS服务器的域名(?)

rname.invalid.: 邮箱地址:xxx@xxx.com ->xxx.xxx.com

下面这个几个字段:主要是配置主从同步数据

0: serial: 序列号, 序列号越大代表这个文件越新

1D: refresh: 主存刷新时间为1天

1H: 重试时间:retry 1小时

1W: expire: 过期时间,重试多久之后不再连接

3H: 最小缓存时间: 如果没有rr记录配置缓存时间,使用3H

缓存时间:$TTL 1D -> 1D -> 86400

518400 -> 6天

第二条记录:

NS: name server -> 对应指定域名要使用DNS服务器的名称(可以有多行)

openlab.com/@/空(相当于使用前一条的@)  NS  dns.openlab.com. -> openlab.com -》 dns.openlab.com.

第三条记录:

A: 正向解析记录 -》 域名对应的IP

域名  IN  A   IP

第四条记录:

AAAA: IPV6正向记录

额外条:

1,MX: 邮箱服务器:这个需要单独指定

openlab.com - > mail.openlab.com: user1@openlab.com -> user2@openlab.com -> 中间要经过mail.openlab.com

域名  IN  MX  number  IP: 也是数值如果有多个邮箱服务器,数值越大代表优先级越高

2,CNAME: change  NAME: 别名

www.baidu.com -> web.baidu.com

www -> web

新的域名 IN CNAME 老的域名 

dhcp.openlab.com(错误) -> dhcp.openlab.com.或者dhcp -> 会帮你主动加上.openlab.com.

dhcp.openlab.com(错误) -> dhcp.openlab.com.openlab.com.

SOA, A,AAAA,NS,MX,CNAME

3,PTR: 反向解析记录:即IP转换成域名

ip IN PTR  域名.

五,DNS域名解析实验

实验一:

正向解析

假设同一家公司RHCE: 搭建一个DNS服务器,并且为公司内部提供域名解析的服务:我们公司的域名:rhce.com

www.rhce.com  -> 192.168.206.134(虚拟主机ip)

dhcp.rhce.com  -> 192.168.106.111(此ip不需要真实存在)

dns.rhce.com  -> 192.168.206.131  (此虚拟机的Ip)

ftp.rhce.com  -> 192.168.206.110

ntp.rhce.com  -> 192.168.206.112

Mali.rnce.com 192.168.206.115

1,使用命令vim /etc/named.conf编辑配置文件

2,修改:listen-on port 53 { 192.168.233.154; }; 修改成物理网卡的IP

   

3, allow-query     { 192.168.206.0/24; };   允许哪些主机来访问

4,修改配置区域

# 区域配置

zone "rhce.com" IN {

 type master;       #只有一台dns,所以为master

            file "rhce.zone";       #区域名解析记录文件

};

5,把文件的最后两行注释掉

不需要引入系统配置的区域文件

6,保存退出

7,named.conf -> bind软件给我提供了一个命令来检查配置文件的正确性

[root@wangjingjing ~]# named-checkconf /etc/named.conf

检查完后没有任何输出就是没有语法错误

8,创建区域解析配置文件

区域解析的配置文件应该放在/var/named目录下面

刚新建了一个区域,但是解析文件不存在,需要自己去配置

(1)使用命令cd /var/named目录下面

[root@wangjingjing ~]# cd /var/named

(2)编辑文件 rhce.zone(此文件名必须与刚才在name.conf中的文件名一致)

  使用命令vim   rhce.zonewq

$TTL 1D

@       IN SOA dns.rhce.com. test.163.com (         #soa记录,用@代替域名   记录类型   @或者dns.rnce.com.      邮箱地址(因为前面的@用过了,用test代替)

                                           0          序列号,新旧程度

                                          1D        刷新时间,从主dns多久刷新一次

                                          1H        重试时间,连接失败,多久尝试一次

                                          1W       过期时间   尝试多久

                                          3H   )      最小缓存时间

Rhce.com        IN NS  dns.rhce.com.      标记已使用哪一个dns服务器   ;可以有多行

                             IN MX 10  mail.rhce.com.     邮箱   10表示优先级

dns.rhce.com.  IN A      192.168.206.131   解析记录 ;把前面的域名解析为后面的ip

mail.rhce.com. IN A      192.168.206.115

www.rhce.com.  IN A      192.168.206.133

;ftp     ftp.rhce.com.               ;表示注释

;ftp.rhce.com    ftp.rhce.com.rhce.com.

ftp            IN A      192.168.206.110

dhcp           IN A      192.168.206.111

NTP            IN A      192.168.206.112

;cname: change name                别名

web            IN CNAME  www                     新  老

(3)wq保存退出,检验区域解析文件语法有无错误

[root@wangjingjing named]# named-checkzone rhce.com /var/named/rhce.zone

                                                                                          区域名        区域文件

9,重新启动named服务

[root@wangjingjing named]# systemctl restart named

10,测试

配置的rhce.zone:  dns服务器 -》 解析一个域名www.rhce.com , 谁去解析(DNS服务器)

测试:host  FQDN DNS服务器的地址

方法一:

[root@wangjingjing named]# vim /etc/named.conf

[root@wangjingjing named]# host www.rhce.com 192.168.206.131

Using domain server:

Name: 192.168.206.131

Address: 192.168.206.131#53

Aliases:

www.rhce.com has address 192.168.206.133

[root@wangjingjing named]#

方法二:

[root@wangjingjing named]# nslookup www.rhce.com 192.168.206.131

Server:                192.168.206.131

Address:        192.168.206.131#53

Name:        www.rhce.com

Address: 192.168.206.133

[root@wangjingjing named]#

方法三:

[root@wangjingjing named]# dig www.rhce.com 192.168.206.131

11,在windows使用自己搭建的dns服务器

在windows 上的vmnet8上修改dns为自己配置的dns服务器

在windows命令行测试

12,linux上测试

第二台机器使用命令 vim /etc/resolv.conf打开文件修改nameserver

2使用1搭建的dns服务

没修改之前,ping不通

修改后:

在vmware上测试

实验二:

逆向解析

1,使用命令vim  /etc/named.conf打开文件配置反向解析的区域

 

 

zone "206.168.192.in-addr.arpa" IN {            写一个网段.in-addr.arpa: 固定搭配,反向解析即将IP解析域名

        type master;

        file "206.168.192.zone";

};

 

2,检查文件有无语法错误

 

3,配置区域解析文件

使用命令 vim /var/named/206.168.192.zone新建一个逆向解析文件

正向文件

逆向文件

4,检查有无语法错误

5,重启服务

6,测试

实验三:

区域传送,主从同步

rhce.com区域, 区域的解析文件:rhce.zone

type:master -> type: slave

                       从服务器上不写rhce.zone: 保存同步过来数据文件的目录

1,使用命令yum install bind -y在第二台机器上安装dns软件

[root@kelong ~]# yum install bind -y

2,在DNS上使用命令vim /etc/named.conf 打开主配置文件

添加  allow-transfer  { 192.168.206.0/24; };

3,在dns上使用命令vim /etc/named.conf打开主配置文件

listen-on port 53 { 192.168.206.132; };       修改为本地ip

allow-query     { 192.168.206.0/24; };          允许哪些ip来访问

添加区域

zone "rhce.com" IN {

        type slave;

        masters { 192.168.206.131; };

        file "slaves/rhce.zone";

};

4,使用命令systemctl restart named启动主dns和从dns

 5,使用从dns解析www.rhce.com 192.168.206.132(从ip)

同步的配置文件在目录/var/named/slaves/下

不会随着重启而变化,因为我们在:主DNS上面没有配置从DNS的NS记录

用命令vim /var/named/rhce.zone打开主DNS配置文件

添加 IN NS dns1.rhce.com.

Dns1.rhce.com.    IN   A   192.168.206.132(二台ip)

0变为10

重启服务主,从

查看从配置文件是否同步(更新了,时间变化)

10变为11,看是否会同步;同步了

11改为9,看是否会同步;没有同步

新的会同步,旧的不会同步

  

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

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

相关文章

对于初学python的小白大佬们有什么建议吗?

我认为态度是一块重要的敲门砖。米卢说:“态度决定一切”。你对人生的态度是这个世界真正的试金石。对不同的事情要有不同的态度。而对待自学,认真就妥了。 首先要为自己设定一个目标,对于初学者,看书的话可以看《Head First Pyt…

几款考研必备软件 你还不知道吗?

几款考研必备软件 你还不知道吗? 英语单词软件推荐 背单词软件 墨墨背单词[推荐指数]⭐️⭐️⭐️⭐️⭐️ 科学高效抗遗忘方法,记录详细记忆行为数据,结合记忆反馈帮你记忆更加牢固 界面简洁舒适无广告,没有任何干扰,就算是强迫症也能使用的非常舒适 完美收集权威单词本,全…

哈佛大学庄小威团队破解衰老大脑的关键变化

“了解衰老是生物医学最重要的目标之一,同时这也是一个非常具有挑战性的问题。”哈佛大学终身教授庄小威说,“造成挑战的原因之一在于大脑非常复杂,细胞种类繁多,许多不同类型的神经元和非神经元细胞形成了复杂的相互作用网络。”…

一种二阶Biquad滤波器

一、首先给出biquad的Z变换函数为: 为了计算方便可对上式进行归一化处理,分子分母同时除以a0,则得出如下: 对应的差分方程为: 二、用户定义参数如下 #ifndef LN2 #define LN2 0.69314718055994530942 #endif #ifnde…

密码学技术导论篇

密码学技术前言基础术语不要使用保密的密码算法任何密码总有一天都会被破解对称密码(共享秘钥密码)AES总结公钥密码 --- 用公钥加密,私钥解密秘钥配送问题公钥密码中间人攻击认证单向散列函数--- 消息的指纹单向散列函数的实际应用单向散列函…

python接口自动化——unittest简介(详解)

简介 前边的随笔主要介绍的requests模块的有关知识个内容,接下来看一下python的单元测试框架unittest。熟悉 或者了解java 的小伙伴应该都清楚常见的单元测试框架 Junit 和 TestNG,这个招聘的需求上也是经常见到的。python 里面也有单元 测试框架-unitt…

Lua 垃圾回收

Lua 垃圾回收 参考至菜鸟教程。 Lua 采用了自动内存管理。 这意味着你不用操心新创建的对象需要的内存如何分配出来, 也不用考虑在对象不再被使用后怎样释放它们所占用的内存。 Lua运行了一个垃圾收集器来收集所有死对象(即在Lua中不可能再访问到的对象&…

新能源——充电控制

一、交流充电——慢充 交流充电:电网输入给车辆的交流电,220V AC单向电或380V AC三相电。 车载充电机:交流电转化为直流电 二、直流充电——快充 三、充电模式 模式1——标准插座 模式2——带有交流电动汽车供电设备的标准插座 模式3——…

idea maven打包编译报错 java.lang.AssertionError: input.getType

今天使用idea打包编译maven项目,出现如下报错 构建报错时,最先显示的是这个报错。查了一圈下来,我的配置是没有问题的。 Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project…

WackoPicko通关教程

7.WackoPicko通关教程 首先进入网站&#xff0c;整体浏览网页&#xff0c;看网站的功能点 本着见框就插的原则&#xff0c;我们可以在搜索框进行查询 构造payload&#xff1a; <script>alert(/xss/)</script> 查看网站&#xff0c;成功触发弹窗 之后进入留言板…

45.Isaac教程--地图编辑器

地图编辑器 ISAAC教程合集地址: https://blog.csdn.net/kunhe0512/category_12163211.html 文章目录地图编辑器运行地图编辑器编辑现有地图层添加新的航点或多边形修改现有航点和多边形创建一个新的 WaypointMapLayer创建一个新的 PolygonMapLayer删除图层启用/禁用图层地图编辑…

【Python】request.session的cookie如何导入aiohttp._cookie_jar

request.session的cookie导入aiohttp._cookie_jar的教程 1.起因 我的 kook-valorant-bot 使用了两个开源库&#xff0c;用于riot账户的登录并获取token 其中最主要用的是基于aiohttp的floxay/python-riot-auth&#xff0c;但这个仓库不支持2fa用户&#xff08;开启了邮箱双重…

1999—2019年地级市人口变动数据(增长率\出生人口\死亡人口)

人口数据是我们在各项研究中最常使用的数据&#xff0c;而统计年鉴是人口数据的重要来源&#xff01;之前我们介绍过基于2000-2021年《中国城市统计年鉴》整理的1999年—2020年全国地级市的人口指标&#xff0c;包括户籍人口、常住人口、户数等指标&#xff08;可查看之前发布的…

史上最强strace命令详解

系列文章目录 文章目录系列文章目录前言一、strace是什么&#xff1f;二、strace怎么用总结前言 一、strace是什么&#xff1f; 按照 strace 官网的描述&#xff0c;strace 是一个可用于诊断、调试和教学的 Linux 用户空间跟踪器。我们用它来监控用户空间进程和内核的交互&…

网络编程 -- socket 套接字

文章目录socket 套接字UDP 和 TCP 区别1. 有连接 VS 无连接2. 可靠传输 VS 不可靠传输3. 面向字节流 VS 面向数据报4. 全双工UDP 数据报套接字编程TCP 数据报套接字编程socket 套接字 本文就来学习一下 网络编程&#xff0c; 既然谈到了网络编程&#xff0c;那么要如何进行呢 &…

三层交换机报文转发过程

如图所示&#xff0c;假如主机A想访问主机B&#xff0c;首先主机A会将自己的IP地址和子网掩码做与操作,得出网路地址(如:Host-A的IP地址100.1.1.2与自身掩码255.255.255.0做与操作后,得到的网络号是100.1.1.0).然后判断目的IP地址(即Host-B的IP地址)与自己的网络地址是不是在同…

Linux下查看多线程进程下的线程

Linux内核在执行程序时&#xff0c;将所有运行时信息写到了/proc/{pid} 目录下。下面我们以以下python的2线程程序为例&#xff0c;详细说一下Linux系统下如何查看1&#xff0c;某个进程有几个线程2&#xff0c;某个进程里具体有哪些线程我们通过如下代码&#xff08;threaddem…

1606_PC汇编语言_简介以及8086系列的平台信息梳理

全部学习汇总&#xff1a; GreyZhang/g_unix: some basic learning about unix operating system. (github.com) 看得出来外国高校教育中的质量&#xff0c;一个课程涉及到的资料特别庞大。我感觉掌握起来比较缓慢吃力&#xff0c;当然&#xff0c;这不排除语音障碍带来的影响。…

【选择IT培训机构时,我们应该注意的点有哪些?】

之前写过一篇关于是否还有靠谱IT培训机构的内容&#xff0c;很多小伙伴也发表了各自不同的看法&#xff0c;有赞同&#xff0c;有反对&#xff0c;还有讽刺的。其中不免有培训的受害者&#xff0c;想要培训的人&#xff0c;恶意抹黑培训的人&#xff0c;也有少部分培训的受益者…

jenkins docker 部署-02

镜像说明 镜像ponylee/jenkins-centos7:v2.0基于镜像ponylee/jenkins-centos7:v1.0&#xff08;镜像ponylee/jenkins-centos7:v1.0基于jenkins/jenkins:lts-centos7-jdk8, 添加 git maven jdk8 等java部署常用的工具。同时改变运行用户jenkins为root&#xff0c;放大权限&#…