Httprint 指纹识别技术:网络安全的关键洞察

引言

Http指纹识别现在已经成为应用程序安全中一个新兴的话题,Http服务器和Http应用程序安全也已经成为网络安全中的重要一部分。从网络管理的立场来看,保持对各种web服务器的监视和追踪使得Http指纹识别变的唾手可得,Http指纹识别可以使得信息系统和安全策略变的自动化,在基于已经设置了审核策略的特殊的平台或是特殊的web服务器上,安全测试工具可以使用Http指纹识别来减少测试所需要的配置。本文将介绍现有的Http指纹识别技术,同时也将讨论所遇到的一些问题并且拿出可行的解决方案。

一 指纹识别理论

指纹的定义是这样的:1是指任何表面上的指尖印象或者是在指尖上蘸上墨水而在纸上留下的的墨水印象;2是指可以用来识别的东西: 如特色、痕迹或特性等揭露起源的东西,表示物体或物质的特色的证据。指纹识别可以分为两步,一是对指纹进行收集和分类; 二是将未知的指纹同被储存在数据库中的指纹进行比较,从而找出最符合的。当采集指纹的时候,对物体的所有主要特性的抓取是必要的。 采集较多的细节,可以对第二步产生很大的帮助。当比较指纹的时候,很有可能有几个指纹是被不合适的匹配的,因为可指纹之间微小的差别很容易使识别产生错误,这也要求指纹识别需要很高的技术。指纹识别技术现在已经是网络安全的已知技术。操作系统指纹识别在任何的网络评估中是一件通常的工作,现在也有很多操作系统指纹识别技术。操作系统指纹识别为什么能成功?那是因为每个操作系统实现TCP/IP协议时有微小的差别,当前比较流行的是利用TCP/IP堆栈进行后操作系统识别,相关工具比如Nmap;还有的是利用ICMP进行操作系统识别,代表工具如Xprobe。Http指纹识别的原理大致上也是相同的:记录不同服务器对Http协议执行中的微小差别进行识别。Http指纹识别比TCP/IP堆栈指纹识别复杂许多,理由是定制Http服务器的配置文件、增加插件或组件使得更改Http的响应信息变的很容易,这样使得识别变的困难;然而定制TCP/IP堆栈的行为需要对核心层进行修改,所以就容易识别。

二 Banner获取

查看Http应答头信息是Http指纹识别中最简单也是最基础的,我们可以通过一个Tcp客户端比如netcat来实现,一般我们用的比较多的是telnet到80端口,然后发送命令来得到响应信息,这里我们以netcat来做例子,以下是三个不同Http服务器的响应信息:

1:Apache 1.3.23 server:
Http/1.1 200 OK
Date: Mon, 08 Sep 2003 17:10:49 GMT
Server: Apache/1.3.23
Last-Modified: Mon, 08 Sep 2003 03:48:19 GMT
ETag: “32417-c4-3e5d8a83”
Accept-Ranges: bytes
Content-Length: 196
Connection: close
Content-Type: text/html

2:Microsoft IIS 5.0 server:
Http/1。1 200 OK
Server: Microsoft-IIS/5.0
Expires: Mon, 08 Sep 2003 01:41:33 GMT
Date: Mon, 08 Sep 2003 16:41:33 GMT
Content-Type: text/html
Accept-Ranges: bytes
Last-Modified: Mon, 08 Sep 2003 15:32:21 GMT
ETag: “b0aac0542e25c31:89d”
Content-Length: 7369

3:Netscape Enterprise 4.1 server:
Http/1.1 200 OK
Server: Netscape-Enterprise/4。1
Date: Mon, 08 Sep 2003 16:19:04 GMT
Content-type: text/html
Last-modified: Mon, 08 Sep 2002 15:37:56 GMT
Content-length: 57
Accept-ranges: bytes
Connection: close

三 模糊服务器Banner信息

在很多情况下,获取Banner被证明是一种很好的Http指纹识别方法。但是,网络管理员会选择通过配置或者是增加插件来更改或者是模糊服务器的Banner信息。当然,这样的设置确实是自动的阻止了很多对Http服务器的攻击。要让服务器返回不同的Banner信息的设置是很简单的,象Apache这样的开放源代码的Http服务器,用户可以在源代码里修改Banner信息,然后重起Http服务就生效了;对于没有公开源代码的Http服务器比如微软的IIS或者是Netscape,可以在存放Banner信息的Dll文件中修改,相关的文章有讨论的,这里不再赘述,当然这样的修改的效果还是不错的。另一种模糊Banner信息的方法是使用插件,这些插件可以提供自定义的Http应答信息。比如ServerMask这个商业软件就可以提供这样的功能,它是IIS服务器的一个插件,ServerMask不仅模糊了Banner信息,而且会对Http应答头信息里的项的序列进行重新组合,从而来模仿Apache这样的服务器,它甚至有能力扮演成任何一个Http服务器来处理每一个请求。这个软件可以在以下地址找到:

Http://www.port80software.com/products/servermask

下面就是一个被自定义Banner信息的Http服务器的例子,Apache服务器被自定义成了未知服务器:

Http/1.1 403 Forbidden
Date: Mon, 08 Sep 2003 02:41:27 GMT
Server: Unknown-Webserver/1.0
Connection: close
Content-Type: text/html; charset=iso-8859-1

下面是一个使用了ServerMask插件的IIS服务器的例子:

Http/1.1 200 OK
Server: Yes we are using ServerMask
Date: Mon, 08 Sep 2003 02:54:17 GMT
Connection: Keep-Alive
Content-Length: 18273
Content-Type: text/html
Set-Cookie: It works on cookies

too=82.3S3.O12.NT2R0RE,4147ON3P,.4OO.; path=/
Cache-control: private

从上面的例子我们可以看到,仅仅从Banner信息来判断Http服务器类型是远远不够的。

四 协议行为

在执行Http协议时,几乎所有的Http服务器都具有它们独特的方法,如果Http请求是合法并且规则的,Http服务器返回的应答信息是符合RFC里的描述的。但是如果我们发送畸形的Http请求,这些服务器的响应信息就不同了,不同服务器对Http协议行为表现的不同就是Http指纹识别技术的基本根据和原理。大家还是喜欢看例子,那就让我们来举几个不同的例子吧,我们将分析3种不同Http服务对不同请求所返回的响应信息,这些请求是这样的:

1:HEAD / Http/1.0 发送基本的Http请求
2:DELETE / Http/1.0 发送那些不被允许的请求,比如Delete请求
3:GET / Http/3.0 发送一个非法版本的Http协议请求
4:GET / JUNK/1.0 发送一个不正确规格的Http协议请求

Exp1:基本的Http请求
我们先发送请求HEAD / Http/1.0,然后分析Http响应头里的信息,对头信息里项的排序进行分析。发送的请求命令如下:
C:>nc apache.example.com 80 //回车,下同
HEAD / Http/1.0 //输入后回车,下同

响应信息:
1:Apache 1.3.23
Http/1.1 200 OK
Date: Mon, 08 Sep 17:10:49 GMT
Server: Apache/1.3.23
Last-Modified: Thu, 27 Feb 2003 03:48:19 GMT
ETag: “32417-c4-3e5d8a83”
Accept-Ranges: bytes
Content-Length: 196
Connection: close
Content-Type: text/html

2:IIS 5.0
Http/1.1 200 OK
Server: Microsoft-IIS/5.0
Content-Location: Http://iis。example。com/Default。htm
Date: Mon, 08 Sep 20:13:52 GMT
Content-Type: text/html
Accept-Ranges: bytes
Last-Modified: Mon, 08 Sep 2003 10:10:50 GMT
ETag: W/“e0d362a4c335be1:ae1”
Content-Length: 133

3:Netscape Enterprise 4.1
Http/1.1 200 OK
Server: Netscape-Enterprise/4.1
Date: Mon, 08 Sep 2003 06:01:40 GMT
Content-type: text/html
Last-modified: Mon, 08 Sep 2003 01:37:56 GMT
Content-length: 57
Accept-ranges: bytes
Connection: close

比较结果: Apache头信息里的Server和Date项的排序是不同的。

Exp2:Http DELETE请求
这次,我们将发送DELETE / Http/1.0请求,我们将分析不同Http服务器对非法请求的应答信息的不同。发送的请求命令:
C:>nc apache。example。com 80
DELETE / Http/1.0

响应信息:
1:Apache 1.3.23
Http/1.1 405 Method Not Allowed
Date: Mon, 08 Sep 2003 17:11:37 GMT
Server: Apache/1.3.23
Allow: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS,

PATCH, PROPFIND, PROPPATCH,
MKCOL, COPY, MOVE, LOCK, UNLOCK, TRACE
Connection: close
Content-Type: text/html; charset=iso-8859-1

2:IIS 5.0
Http/1.1 403 Forbidden
Server: Microsoft-IIS/5.0
Date: Mon, 08 Sep 2003 20:13:57 GMT
Content-Type: text/html
Content-Length: 3184

3:Netscape Enterprise 4.1
Http/1.1 401 Unauthorized
Server: Netscape-Enterprise/4.1
Date: Mon, 08 Sep 2003 06:03:18 GMT
WWW-authenticate: Basic realm=“WebServer Server”
Content-type: text/html
Connection: close

比较结果: Apache响应的是"405 Method Not Allowed",IIS响应的是"403 Forbidden",Netscape响应的是 “401 Unauthorized”,发现对Delete请求,响应的信息是完全不同的。

Exp3:非法Http协议版本请求
这次我们将发送非法的Http协议版本请求,比如GET / Http/3。0请求,事实上Http 3.0是不存在的,发送请求命令:
C:>nc apache。example。com 80
GET / Http/3.0

响应信息:
1:Apache 1.3.23
Http/1.1 400 Bad Request
Date: Mon, 08 Sep 2003 17:12:37 GMT
Server: Apache/1.3.23
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=iso-8859-1

2:IIS 5.0
Http/1.1 200 OK
Server: Microsoft-IIS/5。0
Content-Location: Http://iis。example。com/Default。htm
Date: Mon, 08 Sep 2003 20:14:02 GMT
Content-Type: text/html
Accept-Ranges: bytes
Last-Modified: Mon, 08 Sep 2003 20:14:02 GMT
ETag: W/“e0d362a4c335be1:ae1”
Content-Length: 133

3:Netscape Enterprise 4.1
Http/1.1 505 Http Version Not Supported
Server: Netscape-Enterprise/4.1
Date: Mon, 08 Sep 2003 06:04:04 GMT
Content-length: 140
Content-type: text/html
Connection: close

比较结果:Apache响应的是"400 Bad Request",IIS忽略了这个请求,响应信息是OK, 还返回了网站根目录的HTML数据信息,Netscape响应的是"505 Http Version Not Supported"。

Exp4: 不正确规则协议请求
这次测试主要是对GET / JUNK/1.0. 请求的响应,发送请求命令:
C:>nc apache.example.com 80
GET / JUNK/1.0

响应信息:
1:Apache 1.3.23
Http/1.1 200 OK
Date: Sun, 15 Jun 2003 17:17:47 GMT
Server: Apache/1.3.23
Last-Modified: Thu, 27 Feb 2003 03:48:19 GMT
ETag: “32417-c4-3e5d8a83”
Accept-Ranges: bytes
Content-Length: 196
Connection: close
Content-Type: text/html

2:IIS 5.0
Http/1。1 400 Bad Request
Server: Microsoft-IIS/5.0
Date: Fri, 01 Jan 1999 20:14:34 GMT
Content-Type: text/html
Content-Length: 87

3:Netscape Enterprise 4.1

Bad request

Bad request

Your browser sent a query this server could not understand。

比较结果:在这里,Apache忽视了不规则的协议"JUNK",还返回了200 “OK” 和根目录的一些信息,IIS响应的是"400 Bad Request",Netscape几乎没有返回Http头信息,相反的却返回了HTML格式的信息来表明这是个错误请求。

测试小结:我们下面列了一个表,我们可以很简单的辨别不同的Http服务器。

服务器 头信息项排序 Delete请求 非法版本 不规则协议
Apache/1.3.23 Date, Server 405 400 200
MS-IIS/5.0 Server, Date 403 200 400
Netscape4.1 Server, Date 401 505 no header

五 指纹识别工具

这里我们将介绍一个Http指纹识别工具Httprint,它通过运用统计学原理,组合模糊的逻辑学技术,能很有效的确定Http服务器的类型。它可以被用来收集和分析不同Http服务器产生的签名,什么是Http签名呢?Http签名通过16进制转为ASCII码如下:

Microsoft-IIS/5.0
CD2698FD6ED3C295E4B1653082C10D64811C9DC594DF1BD04276E4BB811C9DC5
0D7645B5811C9DC52A200B4C9D69031D6014C217811C9DC5811C9DC52655F350
FCCC535BE2CE6923E2CE6923F2454256E2CE69272576B769E2CE6926CD2698FD
6ED3C295E2CE692009DB9B3E6ED3C2956ED3C2956ED3C2956ED3C295E2CE6923
6ED3C295

Apache/1.3.x
9E431BC86ED3C295811C9DC5811C9DC5050C5D32505FCFE84276E4BB630A04DB
0D7645B5970EE6BB811C9DC5CD37187C11DDC7D78398721EB06FE5D78A91CF57
FCCC535B6ED3C295FCCC535B811C9DC5E2CE69272576B769E2CE69269E431BC8
6ED3C295E2CE69262A200B4C811C9DC5811C9DC5811C9DC5811C9DC5811C9DC5
811C9DC5

Httprint先把一些Http签名信息保存在一个文档里,然后分析那些由Http服务器产生的结果。当我们发现那些没有例在数据库中的签名信息时,我们可以利用Httprint产生的报告来扩展这个签名数据库,而当Httprint下一次运行时,这些新加的签名信息也就可以使用了。Httprint可以图形界面运行和命令行下运行,可以运行在Windows、Linux和Mac OS X平台上。

以下是命令行下的帮助文件:
D:>Httprint
Usage: Httprint {-h | -i } -s [… options]
-h 可以是ip地址ip范围,或者是url地址
-i 一个包含测试地址的文件,默认文件是input。txt
-s 一个包含Http签名的文件,默认是signatures。txt
Options:
-o 默认的报告文件是"Httprintoutput。html"。可以

自己定义
-tp Ping超时时间,默认是1000 ms。 最大是30000 ms。
-t 连接和读取超时时间,默认是10000 ms。 最大是100000 ms。
-r 重复时间。 默认是3次。 最大是30次。
-P0 指纹识别前不Ping主机。
-? 帮助信息。

例子:
Httprint -h http://www.target.com/ -s signatures.txt
Httprint -h Https://www.target.com -s signatures.txt
Httprint -h Http://www.target.com:8080/ -s signatures.txt
Httprint -h 10.0.1.1-10.0.1.254 -s signatures.txt -o 10_0_1_x.html
Httprint -i input.txt -s signatures.txt -o output.html

使用方法是很简单的,下面是Httprint的一次输出结果:

D:>Httprint -h Http://www.Target.com -s signatures.txt
Host: http://www.target.com/ is alive…
Finger Printing on Http://www.target.com:80/
Derived Signature:
Apache/1.3.26 (Unix)
9E431BC86ED3C295811C9DC5811C9DC5050C5D32505FCFE84276E4BBC184CB92
0D7645B5811C9DC52A200B4C811C9DC511DDC7D78398721E811C9DC5811C9DC5
E2CE6923E2CE6923E2CE6923811C9DC568D17AAE2576B769E2CE6926811C9DC5
E2CE6923E1CE67B1811C9DC5E2CE6920E2CE69206ED3C2956ED3C295E2CE6920
E2CE69206ED3C295811C9DC568D17AAEE2CE6923

Banner Reported: Apache/1.3.26 (Unix)
Banner Deduced: Apache/1.3.26
Scores:
Microsoft-IIS/4.0: 47
Microsoft-IIS/5.0: 57
Microsoft-IIS/5.0 ASP。NET: 57
Microsoft-IIS/5.1: 57
Microsoft-IIS/6.0: 75
… //略去一些
Apache/2。0。x: 70
Apache/1。3。27: 79
Apache/1。3。26: 80
Apache/1。3。[4-24]: 78
… //略去一些
Com21 Cable Modem: 49

在上面的例子中,Httprint显示了被测服务器的签名信息,然后将这些信息同数据库中已有的签名进行比较,然后对每一个指纹进行评分,分数最高的也就是最符合的。 在这个例子里, "Apache/1.3.26"是最适合的。以下是图形界面的抓图:

图片
Httprint会产生一个HTML格式的报告,这个报告将对以后的分析产生很大的作用,下面是一个报告:

图片
Httprint的功能是强大的,尽管大家可以用ServerMask这样的软件来模糊指纹,但是仍然可以被Httprint这样利用统计学原理进行识别的的软件打败,下面是一个例子:

D:>Httprint unknown.example.com
Reported signature:
Protected by ServerMask
CD2698FD6ED3C295811C9DC5811C9DC5811C9DC594DF1BD04276E4BB811C9DC5
0D7645B5811C9DC5811C9DC59D69031D6014C217811C9DC5811C9DC580FF2CD2
FCCC535BE2CE6923E2CE6923811C9DC5E2CE69272576B769E2CE69262CEAB43E
6ED3C295FCCC535B811C9DC56ED3C2956ED3C2956ED3C2956ED3C295E2CE6923
6ED3C295
Best Match: Microsoft-IIS/5.0,Microsoft-IIS/5.1
Scores:
Microsoft-IIS/4.0: 86
Microsoft-IIS/5.0: 101
Microsoft-IIS/5.1: 101
Microsoft-IIS/6.0: 56

Apache/1.3.27: 35
Apache/1.3.26: 36
Apache/1.3.x: 34

MiniServ/0.01: 15
尽管服务器使用ServerMask迷惑了响应信息, 但是Httprint仍然精确的判断出它是Microsoft-IIS/5.0或5.1

图片

-END-

作者简介:风随水

一个从事十五年测试和质量管理者

曾经深圳乃至全国最大最活跃软件测试QQ群群主

致力于质量管理和体系规范

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

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

相关文章

docker push镜像到阿里云

阿里云账号 阿里云-计算,为了无法计算的价值 开通个人镜像容器 进入控制台,试用容器 实例列表界面 点击上图中的个人,个人版特性 创建个人版: 个人版实例界面: 设置密码 个人版实例: 创建镜像仓库 如上…

【C#零基础从入门到精通】(二十六)——C#三大特征-多态详解

【C#零基础从入门到精通】(二十六)——C#三大特征-多态详解 在 C# 中,多态是面向对象编程的重要特性之一,它允许不同的对象对同一消息做出不同的响应。多态可以分为静态多态和动态多态,下面将详细介绍它们以及各自包含的知识点。 多态概述 多态性使得代码更加灵活、可扩展…

大模型与智能体:螺旋共生,绘就智能新蓝图

大模型与智能体:螺旋共生,绘就智能新蓝图 在人工智能的前沿领域,大模型与智能体宛如两颗璀璨的星辰,以一种精妙的螺旋共生关系,重塑着智能世界的格局,深刻影响着我们生活与工作的方方面面。 大模型&#x…

第2章 信息技术发展(一)

2.1 信息技术及其发展 2.1.1 计算机软硬件 计算机硬件(Computer Hardware)是指计算机系统中由电子、机械和光电元件等组成的各种物理装置的总称。 计算机软件 (Computer Software)是指计算机系统中的程序及其文档,程序是计算任务的处理对象和处理规则的描述; 文档…

蓝桥杯篇---超声波距离测量频率测量

文章目录 简介第一部分:超声波的简介工作原理1.发射超声波2.接收反射波3.计算时间差4.计算距离 硬件连接1.Trig2.Echo 示例代码代码说明注意事项1.声速2.延时精度3.硬件连接 第二部分:频率测量简介频率测量原理1.信号输入2.计数3.计算频率 硬件连接示例代…

CentOS系统docker配置镜像加速registry-mirrors,配置阿里云和道客

1.可用仓库 1.1.阿里云 2022年之后的镜像缺失(因为被墙了),但是网速极快 https://g4f7bois.mirror.aliyuncs.com1.2.上海道客 持续更新,但是网速极慢 https://docker.m.daocloud.io2.CentOS配置脚本 注意顺序。阿里云的放前…

DeepSeek24小时写作机器人,持续创作高质量文案

内容创作已成为企业、自媒体和创作者的核心竞争力。面对海量的内容需求,人工创作效率低、成本高、质量参差不齐等问题日益凸显。如何在有限时间内产出高质量内容?DeepSeek写作机器人,一款24小时持续创作的智能工具,为企业和个人提…

【Elasticsearch】simple_query_string

Elasticsearch 的simple_query_string查询是一种灵活且容错性较强的查询方式,它允许用户通过简单的语法构造查询字符串,以实现对文档的搜索。以下是关于simple_query_string查询的详细说明: 1.基本概念 simple_query_string查询是一种基于字…

CPP集群聊天服务器开发实践(五):nginx负载均衡配置

1 负载均衡器的原理与功能 单台Chatserver可以容纳大约两万台客户端同时在线聊天,为了提升并发量最直观的办法需要水平扩展服务器的数量,三台服务器可以容纳六万左右的客户端。 负载均衡器的作用: 把client的请求按照负载均衡算法分发到具体…

MYSQL中的性能调优方法

MySQL性能调优是数据库管理的重要工作之一,目的是通过调整系统配置、优化查询语句、合理设计数据库架构等方法,提高数据库的响应速度和处理能力。以下是常见的MySQL性能调优方法,结合具体的案例进行说明。 1. 优化查询语句 查询语句是数据库…

【论文笔记】Transformer^2: 自适应大型语言模型

Code repo: https://github.com/SakanaAI/self-adaptive-llms 摘要 自适应大型语言模型(LLMs)旨在解决传统微调方法的挑战,这些方法通常计算密集且难以处理多样化的任务。本文介绍了Transformer(Transformer-Squared)…

HTTP的“对话”逻辑:请求与响应如何构建数据桥梁?

一、前言 作为现代互联网通信的基石,HTTP协议定义了客户端与服务器之间的“对话规则”。每一次网页加载、API调用或文件传输的背后,都离不开精心构造的HTTP请求与响应。请求中封装了用户的意图——从请求方法、资源路径到提交的数据;响应则承…

安装 Docker Desktop 修改默认安装目录到指定目录

Docker Desktop安装目录设置 Docker Desktop 默认安装位置 (C:\Program Files\Docker\Docker) 是这个 ,导致系统盘占用过大,大概2G ; 那么如何安装到其他磁盘呢? 根据docker desktop 官网 Docker Desktop install 我们可以看到&a…

基于实例详解pytest钩子pytest_generate_tests动态生成测试的全过程

关注开源优测不迷路 大数据测试过程、策略及挑战 测试框架原理,构建成功的基石 在自动化测试工作之前,你应该知道的10条建议 在自动化测试中,重要的不是工具 作为一名软件开发人员,你一定深知有效测试策略的重要性,尤其…

Kotlin Lambda

Kotlin Lambda 在探索Kotlin Lambda之前,我们先回顾下Java中的Lambda表达式,Java 的 Lambda 表达式是 Java 8 引入的一项强大的功能,它使得函数式编程风格的代码更加简洁和易于理解。Lambda 表达式允许你以一种更简洁的方式表示实现接口&…

C#学习之DataGridView控件

目录 一、DataGridView控件常用属性、方法、事件汇总表 1. 常用方法、属性和事件汇总 二、DataGridView 控件的常用方法调用 1. DataBind() 方法 2. Clear() 方法 3. Refresh() 方法 4. Sort() 方法 5. ClearSelection() 方法 6. BeginEdit() 方法 7. EndEdit() 方法…

本地事务简介

本地事务简介 1 事务基本性质 数据库事务的几个特性:原子性(Automicity)、一致性(Consistency)、隔离性或独立性(islation)和持久性(Durability),简称ACID。 原子性:一系列的操作,其整体不可拆分,要么同时成功&#…

PyQt组态软件 拖拽设计界面测试

PyQt组态软件测试 最近在研究PyQt,尝试写个拖拽设计界面的组态软件,目前实现的功能如下: 支持拖入控件,鼠标拖动控件位置 拖动控件边缘修改控件大小支持属性编辑器,修改当前选中控件的属性 拖动框选控件,点选控件 控…

软件评测师复习之计算机网络(4)

目录 (一)1.网络功能和分类2.OSI七层模型3.TCP/IP协议4.传输介质(二)1.通信方式和交换方式2.IP地址3.IPv64.网络规划与设计5.磁盘冗余阵列6.网络存储技术(一) 1.网络功能和分类 计算机网络功能:数据通信、资源共享、负载均衡、高可靠性 按分布范围和拓扑结构划分: 网络分类…

机器学习-1:线性回归

常用的线性回归模型主要有以下这些 简单线性回归多元线性回归多项式回归岭回归套索回归弹性网络回归逐步回归 一.简单的一元线性回归 1.导入必备的库 #导入必备的库 import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.model_selection …