内网横向移动—ARP攻击图片捕捉数据劫持DNS劫持
内网横向移动—ARP攻击&图片捕捉&数据劫持&DNS劫持
- 1. ARP
- 1.1. APR介绍
- 1.1.1. ARP工作原理
- 1.1.2. APR欺骗工作原理
- 1.2. 环境准备
- 1.3. 适用场景
- 2. ARP断网攻击演示
- 2.1. 使用kali进行演示
- 2.1.1. nmap判断存活
- 2.1.2. 安装工具
- 2.1.3. 攻击Windows 10虚拟机
- 2.1.3.1. 查看效果
- 2.1.4. 攻击IPhone
- 2.1.4.1. 查看效果
- 2.2. 使用Windows进行演示
- 2.2.1. 工具获取
- 2.2.2. 科来工具
- 2.2.3. 抓包过程
- 2.2.3.1. 导入数据
- 2.2.3.2. 修改数据
- 2.2.3.3. 发送数据
- 2.2.3.4. 查看效果
- 3. ARP数据劫持
- 3.1. 使用kali进行演示
- 3.1.1. 开启转发
- 3.1.2. 测试是否正常
- 3.1.3. 攻击Windows 10虚拟机
- 3.1.3.1. 默认数据
- 3.1.3.2. 开启数据转发
- 3.2. 使用Windows进行演示
- 3.2.1. 攻击IPhone
- 3.2.1.1. 开启攻击
- 3.2.1.2. 查看效果
- 3.3. 图片捕捉
- 3.3.1. 安装工具
- 3.3.2. 工具语法
- 3.3.3. 开启演示
- 3.3.3.1. 开启数据转发
- 3.3.3.2. 开启捕捉图片
- 3.3.3.3. 查看效果
- 3.4. 密码捕捉
- 3.4.1. 安装工具
- 3.4.2. 工具语法
- 3.4.3. 开启演示
- 4. DNS劫持攻击
- 4.1. 查询DNS缓存
- 4.2. DNS劫持攻击过程
- 4.2.1. 修改配置文件
- 4.2.2. 启动网站
- 4.2.3. 工具配置
- 4.2.3.1. 选择网卡
- 4.2.3.2. 扫描主机
- 4.2.3.3. 添加目标
- 4.2.3.4. 选择ARP攻击
- 4.2.3.5. 选择攻击插件
- 4.2.3.6. 查看效果
- 5. 安全防范
- 5.1. APR攻击防范
- 5.2. DNS劫持防范
1. ARP
这里可以通过ARP攻击对目标进行断网、数据劫持、监听等。
1.1. APR介绍
ARP(Address Resolution Protocol)是一种TCP/IP协议,用于根据IP地址获取物理地址。在计算机发送信息时,如果需要知道目标IP地址的物理地址,就会使用ARP协议。该协议会通过将目标IP地址广播到局域网上的所有主机,并接收返回的消息来获取目标物理地址。一旦收到返回的消息,计算机就会将该IP地址和物理地址存入本机ARP缓存中,以便下次请求时直接查询,从而节约资源。
1.1.1. ARP工作原理
每台主机都会在自己的ARP缓冲区中建立一个ARP列表(地址转换表),以表示IP地址和MAC地址的对应关系。
当源主机需要将一个数据包发送到目的主机时,会首先检查自己的ARP列表中是否存在该IP地址对应的MAC地址。如果有,就直接将数据包发送到这个MAC地址;如果没有,就向本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址。这个ARP请求数据包里包括源主机的IP地址、硬件地址,以及目的主机的IP地址。
网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址一致。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。
1.1.2. APR欺骗工作原理
由于地址解析是建立在网络中各个主机互相信任的情况下,在局域网中主机可以自行的发布ARP的应答信息,简单来说,如果网络中有其他主机需要自己的mac地址,那么这台主机会主动将自己的mac地址发布出去,而需求主机并不会对该数据报文的真实性进行校验,而是会直接存入自己的ARP缓存中,而这样的情况下就会导致攻击者就可以对某一台主机的ARP应答报进行伪造,从而导致这台主机在进行访问的时候出现报错或者无法通信的情况。
1.2. 环境准备
这里一定要注意哦,后续使用到kali,一定要使用桥接,简单来说,只要是虚拟机测试,一定都使用桥接,确实所有设备都处于一个局域网中。
设备名称 | IP地址 |
---|---|
网关(WiFi路由器) | 192.168.2.1 |
kali 虚拟机 | 192.168.2.10 |
Windows 10 虚拟机 | 192.168.2.20 |
IPhone | 192.168.2.2 |
物理机 | 192.168.2.3 |
1.3. 适用场景
如果你在宿舍,你的舍友大半夜打游戏,很吵,别想,直接使用ARP断网攻击。
如果你在宿舍,你的舍友大半夜手机发出奇怪声响,你找他要网址,他不说,别想,直接使用ARP数据劫持。
如果你在宿舍,你的舍友大半夜看女友照片,你也想看,他不给,别想,直接使用图片捕捉。
如果你在宿舍,你的舍友大半夜偷偷上网课,你想拖他一起打游戏,别想,直接使用DNS劫持。
2. ARP断网攻击演示
这里我准备了虚拟机以及手机来进行测试,由于家里确实没有第二台电脑了,只能使用这种方式了。
2.1. 使用kali进行演示
这里使用kali进行演示。
2.1.1. nmap判断存活
使用nmap判断局域网内存活IP,当然判断局域网中存活IP方式有很多,这个没什么好说的,好家伙IPhone搜不到?????什么鬼,
2.1.2. 安装工具
在kali中是自带aprsoof的,但是我发现好像还是需要自己重新安装,并不是纯正自带的那种。
sudo apt-get install dsniff
2.1.3. 攻击Windows 10虚拟机
这里我就攻击Windows 10 虚拟机,这里还需要看一下你的kali配置的局域网地址是在哪个网卡上。
arpspoof -i eth0 -t 192.168.2.20(目标IP) 192.168.2.1(网关IP)
2.1.3.1. 查看效果
可以看到,我在测试开始的时候去ping百度还是ok的,但是开启攻击后,再去ping百度就无法访问了。
2.1.4. 攻击IPhone
这里也是同样的手法。
arpspoof -i eth0 -t 192.168.2.20(目标IP) 192.168.2.1(网关IP)
2.1.4.1. 查看效果
可以看到开始攻击后,访问百度就无法通信了。
结束攻击后,手机恢复访问。
2.2. 使用Windows进行演示
这里使用Windows进行演示,前置存活判断,什么的就不操作了,不过这里还是要说一下,测试完发现,好像Windows版的并不能生效,也有可能是我使用的方式不对,所以这里,我就使用科来。
2.2.1. 工具获取
在Windows中也是有这个工具的,可以直接去github上下载,我建议直接使用克科来吧,方便。
arpspoof
科莱
2.2.2. 科来工具
这里打开科来后,就是这样的,然后开始抓包。
2.2.3. 抓包过程
这里我们进行抓包,为什么要抓包,是由于好像新版的数据包生成器缺少一些数据,导致无法进行ARP攻击,这里抓包抓一会,看看有没有ARP协议的数据包,我们就基于这个数据包进行数据修改,如果没有直接ping就会出现数据包,这里我们点开双击我箭头的数据包。
2.2.3.1. 导入数据
这里我们双击后就能够看到一个数据包的窗口,随便选择一条ARP数据包选择导入数据包生成器中。
2.2.3.2. 修改数据
这里我们需要修改里面的数据,不会有人还不知道怎么查电脑上的ARP信息吧,通过ARP信息可以获取到我们要攻击的MAC地址以及IP地址,诶,这里我就不说ARP信息怎么查。在本地cmd输入arp -a即可,找到你目标主机的MAC地址与IP地址即可。
以太网-||
目的地址:00:bb:60:7b:a1:92 ##被攻击者MAC地址,这里默认中间是-要替换为:
源地址:随便设置 ##如果设置自己的容易被抓。
地址解析协议
发送者MAC地址:随便设置 ##要和上面的源地址相同。
发送者IP地址:写网关
目标MAC地址:00:bb:60:7b:a1:92 ##被攻击者MAC地址,这里默认中间是-要替换为:
目标地址:192.168.2.20 ##被攻击者的IP地址
2.2.3.3. 发送数据
点击发送,然后选择网卡,都勾选上,设置0次,也就是无限循环。
2.2.3.4. 查看效果
可以看到目标无法上网了,但是这里好像有点小问题哦,就是我结束攻击后,好像网络还是无法恢复,需要重启才能解决。
3. ARP数据劫持
ARP数据劫持,简单来说就是监听目标主机访问了那些网站,这里还有一个问题就是IPhone的数据获取起来比较麻烦,而且基本上获取不到,不知道其他手机是不是这样的,但是电脑都能够成功获取到。
3.1. 使用kali进行演示
这里同样使用kali进行演示。
3.1.1. 开启转发
由于我们需要的是获取目标主机访问的数据,而不是让他无法上网,使用这里我们需要将kali上的端口转发开启。编辑 Kali Linux 虚拟机/etc/sysctl.conf
配置文件,将net.ipv4.ip_forward
配置项取消掉“#
”注释符号,并将其值由 0 改为 1 即可开启端口转发。当然也可以使用命令:
echo 1 >> /proc/sys/net/ipv4/ip_forward
3.1.2. 测试是否正常
这里还是使用工具进行攻击,查看目标主机是否能够正常上网,若能够正常上网,那么设置就是成功的,不过这里需要注意,前后的位置需要调换一下。
arpspoof -i eth0 -t 192.168.2.1(网关IP) 192.168.2.20(目标IP)
3.1.3. 攻击Windows 10虚拟机
这里我们使用WireShark进行监听,由于没有kali版的科来,所以就使用WireShark来操作吧。
3.1.3.1. 默认数据
首先将之前测试的攻击暂停,我们来看一下,默认情况下WireShark抓Windows 10虚拟机是那些数据,可以看到默认情况下,是抓不到数据的,我这个图是我使用ping进行测试的。
ip.addr==192.168.2.20
3.1.3.2. 开启数据转发
这里我们将攻击开启,再来看看WireShark抓取到的是那些数据,可以看到抓取到了很多数据,其实这个就是通过端口转发来进行抓取,目标主机再访问过程中,丝毫无感,但是所有的数据都从你电脑上经过,相当于你是一个中间件,对数据进行捕捉,只不过使用WireShark抓取到的数据确实,有点看的麻烦。
3.2. 使用Windows进行演示
这里我们使用科来进行分析查看,因为科来更加的直观,不过提前说,我的思路有不同的变化,这里应该使用Windows就能够实现的,但是可能由于IPhone的原因,导致未成功实现该操作,但是也抓取到数据了,只是无法转发。
整体思路,使用Windows工具,无法通行,切换到kali上操作,和上面的操作是一样的,由于转发数据就要出去,而kali安装在我物理机上,就可以实现我直接抓数据就可以了,数据的IP依旧是IPhone的地址,因为kail将数据转发了,所以我才能抓取到。
可能有点绕,还需要慢慢理解。
3.2.1. 攻击IPhone
这里我们选择IPhone来进行操作,由于是虚拟机的问题,导致如果使用Windows 10虚拟机的话,所有的流量默认都是走我网卡出去的,所以都能监听到,所以就使用IPhone来操作,这里的默认操作我就不演示了,直接看效果吧。
3.2.1.1. 开启攻击
这里和可惜的是,我没第二台电脑,但是IPhone又无法欺骗…准确说,直接ping不通,但是不知道为什么linux上能够实现,严重怀疑Windows版的这个工具,是先进行连通性测试,然后在进行攻击,而kali中可能是直接开启攻击,所以导致Linux可以,Windows不可以的情况。这里我就替换一下linux吧,然后抓kail的数据包,来看看能不能获取到。
3.2.1.2. 查看效果
可以看到成功获取到数据了,唯一的问题就是好像数据不转发了。
3.3. 图片捕捉
由于前面我们都是获取的是数据,而且数据中的图片是无法获取的,那么这里就使用工具对目标主机访问的网站的图片进行获取。
3.3.1. 安装工具
这里依旧是使用kali来实现,Windows上好像是没有这样的工具的,kali老版本这些工具都有,但是新的版本好像都需要自己下载,也不知道是不是我没更新包导致的。
sudo apt install driftnet
3.3.2. 工具语法
driftnet [options] [filter code]
-b 捕获到新的图片时发出嘟嘟声
-i interface 选择监听接口
-f file 读取一个指定pcap数据包中的图片
-p 不让所监听的接口使用混杂模式
-a 后台模式:将捕获的图片保存到目录中(不会显示在屏幕上)
-m number 指定保存图片数的数目
-d directory 指定保存图片的路径
-x prefix 指定保存图片的前缀名
3.3.3. 开启演示
这里我们来获取Windows 10上的图片,看看是否能够获取到。
3.3.3.1. 开启数据转发
这里同样进行数据转发。
arpspoof -i eth0 -t 192.168.2.1(网关IP) 192.168.2.20(目标IP)
3.3.3.2. 开启捕捉图片
driftnet -i eth0 -a -d /root/heihei
3.3.3.3. 查看效果
可以看到在kali的文件夹下,出现了很多的图片,这写就是在访问的时候出现的一些图片。
3.4. 密码捕捉
这里的前置都不操作了,都是一样的,这里为了方便,找一个小网站来测试。
3.4.1. 安装工具
sudo apt install ettercap-graphical
3.4.2. 工具语法
语法不一定全,可自行百度搜索,或者使用工具的帮助手册。
-l 显示可用网卡接口设备
-i 选择接口
-t 协议选择,tcp/udp/all,默认为all
-p 不进行毒化攻击,用于嗅探本地数据包
-L 载入过滤器文件
-V text 将数据包以文本形式显示在屏幕上
-L filename 把所有的数据包保存下来(保存后的文件只能用etterlog显示)
3.4.3. 开启演示
由于我这里并未测试成功,所以这里说一下整体思路,首先开启数据包的转发,然后再开启工具的捕捉,再目标机器上找一个网站进行登陆,需要注意的是,一定要是账号密码登陆,如果验证码登陆你还是无法登陆的,我们要获取的是账号密码。
这里我放一张别人的图片吧。
其实主要原因是,我电脑蓝屏了,可能开的虚拟机太多了,然后攻击的太频繁了,把我电脑干趴了,尴尬…
ettercap -Tq -i eth0
4. DNS劫持攻击
由于DNS在查询的时候是一个很复杂的流程,所以这里简单说说吧,想了解的,可以自行百度搜索。
例如我们去访问百度的时候,浏览器首先会检查浏览器自身中的缓存记录中是否存在该域名的dns解析记录指向,如果没有,那么就会去查询操作系统中的DNS解析记录,如果还是没有,就会去本地是HOST文件去查询,倘若寻找了一圈均没有记录,那么浏览器会向电脑中的网卡上设置的DNS服务器去发送域名解析的请求,如果还是没有查询到,那么本地的DNS服务器会代替我们本地的浏览器向全球13个根域名服务器去发送查询请求。
这就是一个完整的流程,至于13个根域名服务器如何去查询,那我就不知道了,而且也没统一的资料查询。
4.1. 查询DNS缓存
浏览器中的缓存的查询方式都不一样,建议可以直接百度搜索,操作系统的缓存可以通过命令来查询。
ipconfig /displaydns ##查询DNS缓存
ipconfig /flushdns ##刷新DNS缓存
4.2. DNS劫持攻击过程
这里就开始演示DNS劫持攻击过程,依旧是使用上述的靶机,倒霉蛋依旧是我们的Windows 10虚拟机。
4.2.1. 修改配置文件
这里我们要修改一下kali中 ettercap工具的DNS解析,确实也就是将流量转发到这个你设定的假网站上。
vim /etc/ettercap/etter.dns ##配置文件地址
修改内容:
* A 192.168.2.10 ##星号就代表匹配所有,A就是A记录,192.168.2.10就是kali攻击机的地址,当然你也可以使用公网IP。其他类型: ##以下均可以配置,这个是针对性的
www.*.com A 192.168.2.10
*.baidu.com A 192.168.2.10
*.*.com A 192.168.2.10
4.2.2. 启动网站
这里我是做演示的,直接使用kail自动的本地网页测试即可,这里我也不修改了,直接使用默认,如果你想钓鱼等等,那么就可以对一些网站进行克隆部署即可。
service apache2 start
4.2.3. 工具配置
到这里就开始对这个ettercap工具进行配置了,由于工具是界面的,所以需要去kali机器上去运行。
4.2.3.1. 选择网卡
这里我们默认即可,如果不对修改一些,如何确定即可。
4.2.3.2. 扫描主机
这里扫描一下存活主机,让其在列表中显示出来,由于新版的工具,操作相对来说没那么负载。
4.2.3.3. 添加目标
这里将网关添加到Target1,目标主机添加到Target2。
4.2.3.4. 选择ARP攻击
这里要选择ARP攻击,然后勾选远程攻击。
4.2.3.5. 选择攻击插件
这里点三个小点子,选择Plugins》Manage~》勾选dns_spoof,然后在扫描主机左边有一个实体方框,那个就是开始攻击或关闭攻击的,开启就是实体方框,暂停就是一个播放的图标,可以看到我目前是开启状态,默认都是实时开启的。
4.2.3.6. 查看效果
可以看到,我们去访问百度,但是以及直接跳转到,我们设定的网站上了,
5. 安全防范
简单介绍一下防范。
5.1. APR攻击防范
由于ARP攻击基本上目标主机是无察觉的,主要你想,你正常能够上网,你可能会去排查ARP攻击什么的么,甚至可能部分人都不知道怎么查询ARP,所以关于ARP的攻击只能说,平时自己注意一点,提高警觉。例如:
- 定期删除ARP缓存信息,使用arp -d清除缓存。
- 有条件的绑定ARP信息。
- 安装防火墙,部分防火墙或者杀毒软件能够再一定程度上拦截ARP攻击。
- 最重要的是不要随便连接公开wifi。
5.2. DNS劫持防范
其实这里不单单是DNS劫持,关于DNS的攻击还有,DNS污染、DNS重绑攻击、DNS反射放大攻击等等,后续有空在添加一些。
-
本地HOST文件配置,这里可以查一下本地的HOST文件有没有被修改,一些木马攻击后都会修改HOST文件,所有可以排查一些本地的HOST文件的配置。查询地址:C:\Windows\System32\drivers\etc\HOSTS
-
网卡的DNS服务器地址有没有被篡改。
-
WiFi路由器的DNS服务器有没有被篡改,部分木马会对WiFi路由器进行攻击,例如弱口令爆破,如果WiFi路由器的密码简单,那么可能就会被修改,同时批量修改DNS就会导致解析出现问题。
-
还有就是运营商DNS,默认情况下运营商会将你访问的地址强制跳转到某个DNS上进行解析,确保你的访问正常,同时屏蔽一些恶意网址。查询运营商的DNS
-
安装杀毒软件,也可以降低一些DNS劫持的风险,部分杀毒软件是有专门对DNS修改进行检测的。
相关文章:

内网横向移动—ARP攻击图片捕捉数据劫持DNS劫持
内网横向移动—ARP攻击&图片捕捉&数据劫持&DNS劫持 1. ARP1.1. APR介绍1.1.1. ARP工作原理1.1.2. APR欺骗工作原理 1.2. 环境准备1.3. 适用场景 2. ARP断网攻击演示2.1. 使用kali进行演示2.1.1. nmap判断存活2.1.2. 安装工具2.1.3. 攻击Windows 10虚拟机2.1.3.1. 查…...
react之Hooks的介绍、useState与useEffect副作用的使用
react之Hooks的介绍、useState与useEffect副作用的使用 一、Hooks的基本介绍二、useState的使用2.1 简单使用2.2 数组结构简化2.3 状态的读取和修改2.3 组件的更新过程 三、useEffect的使用3.1 副作用介绍3.2 基本使用3.3 依赖3.4 不要对依赖项撒谎3.5 依赖项可以是空数组3.6 清…...

django——创建 Django 项目和 APP
2.创建 Django 项目和 APP 命令: 创建Django项目 django-admin startproject name 创建子应用 python manager.py startapp name 2.1 创建工程 在使用Flask框架时,项目工程目录的组织与创建是需要我们自己手动创建完成的。 在django中,…...
== 和 equals 的对比 [面试题]
和 equals 的对比[面试题] 文章目录 和 equals 的对比[面试题]1. 和 equals 简介2. Object 类中 equals() 源码3. String 类中 equals() 源码4. Integer 类中 equals() 源码5. 如何重写 equals 方法 1. 和 equals 简介 是一个比较运算符 :既可以判断基本数据类型…...

SpringBoot集成Redis及Redis使用方法
目录 应用背景 Redis简介 更新问题 一:环境配置 1.1: 在pom.xml文件中添加依赖 1.2:配置SpringBoot核心配置文件application.properties 二:在Config文件夹中创建RedisConfig配置文件类 2.1:RedisTemplate中的几个角色&am…...
Redis可以用作数据库吗?它的适用场景是什么?
是的,Redis可以用作数据库。虽然Redis通常被认为是一个内存数据库(in-memory database),但它也可以通过持久化机制将数据保存在磁盘上,以便在重启后恢复数据。 Redis的适用场景包括但不限于以下几个方面: …...

@Param详解
文章目录 背景什么是ParamParam的使用方法使用方法:遇到的问题及因Param解决了什么问题使用与不使用对比 Param是如何进行映射的总结 背景 最近在开发过程中,在写mapper接口是在参数前加了Param注解,但是在运行的时候就会报错,说…...
自定义分页工具类
前言 在日常的开发工作中,会遇到很多不确定的需求场景,无法使用第三方提供的分页组件来实现,那么如何自己实现一个简单的分页工具类呢? 工具类 第一版本: Setter Getter public class PageTool<T> {/*** 当前…...
文本数据保存
文本数据保存 工具目的代码运行结果 工具 pycharm 目的 网址:https://ljgk.envsc.cn/ 需求:获取到地址(address),公司名字(ps_name),创建的时间(create_time)ÿ…...

Python爬虫:抓取表情包的下载链接
Python爬虫:抓取表情包的下载链接 1. 前言2. 具体实现3. 实现代码 1. 前言 最近发现了一个提供表情包的网址,觉得上面的内容不错,于是就考虑用Python爬虫获取上面表情包的下载链接。整体而言,实现这个挺简单的,就是找到提供表情包…...

(文章复现)基于灰狼算法(GWO)的交直流混合微网经济调度matlab代码
参考文献: [1]高瑜,黄森,陈刘鑫等.基于改进灰狼算法的并网交流微电网经济优化调度[J].科学技术与工程, 2020,20(28):11605-11611. [2]邓长征,冯朕,邱立等.基于混沌灰狼算法的交直流混合微网经济调度[J].电测与仪表, 2020, 57(04):99-107. 这两篇文章不管是从模型、…...

【Kubernetes】Kubernetes的调度
K8S调度 一、Kubernetes 调度1. Pod 调度介绍2. Pod 启动创建过程3. Kubernetes 的调度过程3.1 调度需要考虑的问题3.2 具体调度过程 二、影响kubernetes调度的因素1. nodeName2. nodeSelector3. 亲和性3.1 三种亲和性的区别3.2 键值运算关系3.3 节点亲和性3.4 Pod 亲和性3.5 P…...
题目:2511.最多可以摧毁的敌人城堡数量
题目来源: leetcode题目,网址:2511. 最多可以摧毁的敌人城堡数目 - 力扣(LeetCode) 解题思路: 顺序遍历数组,记录上一个我军城堡和没有城堡的位置。当碰到空位置时,若上一次更新的…...
22 | 书籍推荐数据分析
import numpy as np import pandas as pd import seaborn as sns import matplotlib.pyplot as plt from sklearn.cluster import KMeans from sklearn import neighbors from sklearn.model_selection import train_test_split from sklearn.preprocessing import...

vscode extension 怎么区分dev prod
开发模式注入环境变量 使用vsode 提供的api...

Java学习手册——第一篇Java简介
今后Java学习手册就来给大家梳理JavaSE的基础知识啦, 除了这个专栏我们还有其他专栏:前端、安全、后端等。 希望大家可以在这里一起讨论学习哟~ Java学习手册——第一篇Java简介 1. Java基础知识2. Java能干嘛3. Java基础环境搭建 1. Java基础知识 出生…...

Prometheus流程图(自绘)-核心组件-流程详解
阿丹手绘流程图:图片可能有点小查看的时候放大看看哈! prometheus核心组件 prometheus server Prometheus Server是Prometheus组件中的核心部分,负责实现对监控数据的获取,存储以及查询。Prometheus Server可以通过静态配置管理…...
回归模型常见评估指标mae,mse,rmse
文章目录 MAE(平均绝对误差)计算公式sklearn实现numpy实现mse(均方误差)计算公式sklearn实现numpy实现rmse(均方根误差)计算公式sklearn实现MAE(平均绝对误差) 计算公式 MAE ( y ,...

服务器数据恢复-断电导致ext4文件系统文件丢失的数据恢复案例
服务器数据恢复环境: 一台服务器挂载一台存储设备,存储中划分一个Lun;服务器操作系统是Linux centos,EXT4文件系统。 服务器故障&分析: 意外断电导致服务器操作系统无法启动,系统在修复后可以正常启动&…...

链表(基础详解、实现、OJ笔试题)
文章目录 🧚什么是链表(链表概念及分类)链表分类单链表和双链表的区别 🚴♂️单链表、双向链表的实现单链表的实现双向链表的实现 🍉链表经典OJ笔试题反转单链表移除链表元素合并两个有序链表链表分割链表的中间结点…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...

(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...