dirsearch 使用教程:详细指南与配置解析
dirsearch 是一款强大的开源命令行工具,用于对 Web 服务器进行目录和文件暴力破解。它通过扫描目标网站,尝试发现隐藏的目录、文件或潜在的敏感资源,广泛应用于渗透测试和安全审计。dirsearch 提供丰富的选项和灵活的配置文件支持,允许用户自定义扫描行为。本教程将详细介绍 dirsearch 的安装、使用方法、命令行选项、配置文件设置,以及实际案例和注意事项,旨在帮助初学者和专业人士高效使用此工具。
1. dirsearch 简介
dirsearch 的主要功能是通过字典暴力破解,扫描目标 Web 服务器的目录和文件。它支持多线程、递归扫描、自定义扩展名、代理设置等功能,适用于多种场景:
- 渗透测试:发现隐藏的管理后台、配置文件或其他敏感资源。
- 安全审计:检查 Web 服务器是否存在不当暴露的目录或文件。
- 漏洞挖掘:结合其他工具(如 Burp Suite),定位潜在漏洞点。
关键特性
- 多线程扫描:支持高并发,提高扫描效率。
- 灵活的规则配置:通过配置文件或命令行选项自定义扫描行为。
- 多种输出格式:支持 plain、JSON、XML、CSV 等格式,便于结果分析。
- 代理支持:可通过代理扫描,适合匿名测试。
- 递归扫描:自动深入子目录,发现更多资源。
- 过滤机制:基于状态码、文件大小或响应内容过滤结果。
2. 安装 dirsearch
2.1 环境要求
- 操作系统:Linux、Windows、macOS
- Python 版本:Python 3.6 或更高
- 依赖:无额外依赖,dirsearch 包含所有必要库
2.2 安装方法
方法 1:通过 Git 克隆
- 克隆官方仓库:
git clone https://github.com/maurosoria/dirsearch.git cd dirsearch
- 安装(可选,复制到系统路径):
sudo pip3 install .
- 运行:
python3 dirsearch.py --help
方法 2:通过 PyPI
- 使用 pip 安装:
pip3 install dirsearch
- 验证安装:
dirsearch --help
方法 3:Docker 安装
- 拉取 Docker 镜像:
docker pull maurosoria/dirsearch
- 运行容器:
docker run -it --rm maurosoria/dirsearch -u https://target.com
方法 4:Kali Linux
Kali Linux 可以通过 apt install dirsearch
直接安装 dirsearch。
2.3 验证安装
安装完成后,运行以下命令检查版本和帮助:
python3 dirsearch.py --version
python3 dirsearch.py --help
3. dirsearch 默认配置文件解析
dirsearch 的默认配置文件(Kali Linux下位于/etc/dirsearch/config.ini
) 定义了全局扫描行为。以下是默认配置文件内容的详细解析,我会结合实际用途说明每个选项的作用。
# dirsearch Default Configuration (/etc/dirsearch/config.ini)
# Comments after `#` are ignored[general]
threads = 25 # 线程数,控制并发请求数量
recursive = False # 是否启用递归扫描(扫描发现的目录)
deep-recursive = False # 是否深度递归(递归所有子目录)
force-recursive = False # 是否强制递归(忽略状态码限制)
recursion-status = 200-399,401,403 # 递归扫描的状态码范围
max-recursion-depth = 0 # 最大递归深度(0 表示无限制)
exclude-subdirs = %ff/,.;/,..;/,;/,./,../,%2e/,%2e%2e/ # 排除的子目录(如 .git、.. 等)
random-user-agents = False # 是否随机选择 User-Agent
max-time = 0 # 最大扫描时间(秒,0 表示无限制)
exit-on-error = False # 遇到错误时是否退出
# subdirs = /,api/ # 附加扫描的子目录
# include-status = 200-299,401 # 仅显示指定状态码的结果
# exclude-status = 400,500-999 # 排除指定状态码的结果
# exclude-sizes = 0b,123gb # 排除指定大小的响应
# exclude-text = "Not found" # 排除包含特定文本的响应
# exclude-regex = "^403$" # 排除匹配正则表达式的响应
# exclude-redirect = "*/error.html" # 排除重定向到特定 URL 的响应
# exclude-response = 404.html # 排除与指定页面内容相同的响应
# skip-on-status = 429,999 # 遇到指定状态码时跳过扫描[dictionary]
default-extensions = php,aspx,jsp,html,js # 默认扫描的文件扩展名
force-extensions = False # 是否强制为每个路径添加扩展名
overwrite-extensions = False # 是否覆盖默认扩展名
lowercase = False # 是否将字典转换为小写
uppercase = False # 是否将字典转换为大写
capitalization = False # 是否将字典首字母大写
# exclude-extensions = old,log # 排除的扩展名
# prefixes = .,admin # 添加到字典项前缀
# suffixes = ~,.bak # 添加到字典项后缀
# wordlists = /path/to/wordlist1.txt,/path/to/wordlist2.txt # 自定义字典路径[request]
http-method = get # HTTP 请求方法(GET、HEAD 等)
follow-redirects = False # 是否跟随重定向
# headers-file = /path/to/headers.txt # 自定义请求头文件
# user-agent = MyUserAgent # 自定义 User-Agent
# cookie = SESSIONID=123 # 自定义 Cookie[connection]
timeout = 7.5 # 请求超时时间(秒)
delay = 0 # 每个请求之间的延迟(秒)
max-rate = 0 # 最大请求速率(每秒,0 表示无限制)
max-retries = 1 # 最大重试次数
# scheme = http # 协议(http 或 https,注释后自动检测)
# proxy = localhost:8080 # 代理服务器地址
# proxy-file = /path/to/proxies.txt # 代理列表文件
# replay-proxy = localhost:8000 # 重放请求的代理[advanced]
crawl = False # 是否启用爬虫模式(解析页面链接)[view]
full-url = False # 是否显示完整 URL(而非路径)
quiet-mode = False # 是否启用安静模式(仅输出结果)
color = True # 是否启用彩色输出
show-redirects-history = False # 是否显示重定向历史[output]
report-format = plain # 报告格式(plain、json、xml、csv 等)
autosave-report = True # 是否自动保存报告
autosave-report-folder = reports/ # 报告保存目录
# log-file = /path/to/dirsearch.log # 日志文件路径
# log-file-size = 50000000 # 日志文件最大大小(字节)
配置文件关键选项解析
- threads:控制并发线程数,默认 25。增加线程可提高速度,但可能触发目标服务器的防御机制(如 429 状态码)。
- recursive:启用后,dirsearch 会扫描发现的子目录。适合深度挖掘,但可能增加扫描时间。
- default-extensions:指定默认扫描的文件扩展名(如
.php
、.html
)。可根据目标技术栈调整。 - http-method:默认使用 GET 请求,可改为 HEAD 减少流量,或 POST 用于特定场景。
- timeout:请求超时时间,7.5 秒适合大多数场景。网络不稳定时可适当增加。
- report-format:输出格式,plain 适合快速查看,json 或 csv 适合后续分析。
- exclude-subdirs:排除常见无关目录(如
.git/
、..
),减少无效请求。
修改配置文件
-
定位配置文件:
- 默认位置:
/etc/dirsearch/config.ini
(系统安装)或dirsearch/config.ini
(Git 克隆)。 - 检查:
ls /etc/dirsearch/ ls /path/to/dirsearch/
- 默认位置:
-
编辑配置文件:
- 使用文本编辑器(如 nano、vim):
sudo nano /etc/dirsearch/config.ini
- 示例:增加线程数并启用递归扫描:
[general] threads = 50 recursive = True
- 使用文本编辑器(如 nano、vim):
-
验证配置:
- 运行 dirsearch 测试:
python3 dirsearch.py -u https://example.com --config=/etc/dirsearch/config.ini
- 运行 dirsearch 测试:
-
自定义配置文件:
- 复制默认配置文件到用户目录:
mkdir ~/.dirsearch cp /etc/dirsearch/config.ini ~/.dirsearch/config.ini
- 设置环境变量:
export DIRSEARCH_CONFIG=~/.dirsearch/config.ini
- 复制默认配置文件到用户目录:
4. dirsearch 命令行选项详解
dirsearch 提供丰富的命令行选项,用于覆盖配置文件或临时调整扫描行为。以下是主要选项的分类和说明。
4.1 基本选项
-u, --url <URL>
:指定目标 URL(必填)。python3 dirsearch.py -u https://example.com
-l, --url-list <FILE>
:从文件中读取多个目标 URL。python3 dirsearch.py -l urls.txt
-e, --extensions <EXT>
:指定文件扩展名,覆盖默认值。python3 dirsearch.py -u https://example.com -e php,html,txt
-x, --exclude-extensions <EXT>
:排除特定扩展名。python3 dirsearch.py -u https://example.com -x log,old
4.2 字典选项
-w, --wordlist <FILE>
:指定字典文件路径。python3 dirsearch.py -u https://example.com -w /path/to/wordlist.txt
-f, --force-extensions
:强制为每个路径添加扩展名。python3 dirsearch.py -u https://example.com -e php -f
--prefixes <PREFIX>
:为字典项添加前缀。python3 dirsearch.py -u https://example.com --prefixes admin,.
--suffixes <SUFFIX>
:为字典项添加后缀。python3 dirsearch.py -u https://example.com --suffixes ~,.bak
4.3 请求选项
-m, --http-method <METHOD>
:指定 HTTP 方法(GET、POST、HEAD 等)。python3 dirsearch.py -u https://example.com -m HEAD
-H, --header <HEADER>
:添加自定义请求头。python3 dirsearch.py -u https://example.com -H "Authorization: Bearer token"
--user-agent <UA>
:自定义 User-Agent。python3 dirsearch.py -u https://example.com --user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
--cookie <COOKIE>
nationalities:设置 Cookie。python3 dirsearch.py -u https://example.com --cookie "SESSIONID=123"
4.4 连接选项
-t, --threads <NUM>
:设置线程数。python3 dirsearch.py -u https://example.com -t 50
--timeout <SEC>
:设置请求超时时间。python3 dirsearch.py -u https://example.com --timeout 10
--proxy <PROXY>
:指定代理服务器。python3 dirsearch.py -u https://example.com --proxy http://localhost:8080
--max-rate <RATE>
:限制每秒请求数。python3 dirsearch.py -u https://example.com --max-rate 100
4.5 过滤选项
--include-status <CODES>
:仅显示指定状态码的结果。python3 dirsearch.py -u https://example.com --include-status 200,301
--exclude-status <CODES>
:排除指定状态码的结果。python3 dirsearch.py -u https://example.com --exclude-status 404,500
--exclude-sizes <SIZES>
:排除特定大小的响应。python3 dirsearch.py -u https://example.com --exclude-sizes 0b,1kb
--exclude-text <TEXT>
:排除包含特定文本的响应。python3 dirsearch.py -u https://example.com --exclude-text "Not Found"
4.6 输出选项
-o, --output <FILE>
:指定输出文件。python3 dirsearch.py -u https://example.com -o results.txt
--format <FORMAT>
:指定输出格式(plain、json、xml 等)。python3 dirsearch.py -u https://example.com --format json -o results.json
--quiet
:启用安静模式,仅输出结果。python3 dirsearch.py -u https://example.com --quiet
4.7 高级选项
-r, --recursive
:启用递归扫描。python3 dirsearch.py -u https://example.com -r
--deep-recursive
:启用深度递归。python3 dirsearch.py -u https://example.com --deep-recursive
--crawl
:启用爬虫模式,解析页面链接。python3 dirsearch.py -u https://example.com --crawl
--random-agent
:随机选择 User-Agent。python3 dirsearch.py -u https://example.com --random-agent
以下是优化后的内容,调整了顺序以更符合逻辑流程(从基础到高级),精简了描述并保持清晰,删除了冗余示例(合并类似案例),并确保格式一致:
5. 实际使用案例
案例 1:基本目录扫描
扫描目标网站的常见目录和文件,使用内置所有拓展名:
python3 dirsearch.py -u https://example.com -e*
- 扫描扩展名为
.php
,.jsp
,.asp
,.aspx
,.do
,.action
,.cgi
,.html
,.htm
,.js
,.tar.gz
的文件。 - 使用默认字典(
db/dict.txt
)和 25 个线程。
案例 2:自定义字典与代理
扫描特定子目录,使用自定义字典并通过代理:
python3 dirsearch.py -u https://example.com/admin从/admin/ -w /path/to/custom_dict.txt -e php --proxy http://localhost:8080
- 扫描
/admin/
子目录。 - 使用自定义字典和代理服务器。
案例 3:递归扫描与结果过滤
启用递归扫描,仅显示特定状态码并输出 JSON 报告:
python3 dirsearch.py -u http://example.com -r -i 200,300-399 -o results.json --format json
- 显示 200 和 300-399 状态码。
- 输出 JSON 格式报告。
案例 4:高并发与速率限制
高线程扫描,同时限制请求速率以避免触发防御:
python3 dirsearch.py -u https://example.com -t 100 --max-rate 50 --timeout 10
- 使用 100 个线程,每秒最多 50 个请求。
- 设置 10 秒超时。
案例 5:结合 Burp Suite 进行深入测试
通过 Burp Suite 代理进行扫描并启用爬虫模式:
python3 dirsearch.py -u https://example.com --proxy http://127.0.0.1:8080 -e php,asp --crawl
- 启用爬虫模式,解析页面链接。
- 流量通过 Burp Suite 代理,便于手动分析。
案例 6:深度优化与自定义配置
递归扫描,限制深度并排除特定子目录,添加自定义请求头:
python3 dirsearch.py -u http://example.com -r -R 3 --exclude-subdirs logs,static -e* -H "X-API-Key: abc123" -f
- 递归扫描,最大深度 3。
- 排除
logs
和static
子目录。 - 添加自定义请求头
X-API-Key: abc123
。
6. 配置文件设置与优化
6.1 优化线程和速率
- 场景:目标服务器对高并发敏感。
- 配置:
[general] threads = 10 max-rate = 20
- 减少线程数(
threads
)和请求速率(max-rate
),降低被封禁风险。
6.2 自定义扩展名和字典
- 场景:目标使用特定技术栈(如 ASP.NET)。
- 配置:
[dictionary] default-extensions = aspx,asp,config wordlists = /path/to/aspnet_wordlist.txt
- 设置 ASP.NET 相关扩展名,使用专用字典。
6.3 启用递归扫描
- 场景:需要深入扫描子目录。
- 配置:
[general] recursive = True recursion-status = 200-299,301 max-recursion-depth = 3
- 启用递归,仅扫描返回 200-299 和 301 状态码的目录,限制深度为 3 层。
6.4 配置代理
- 场景:需要匿名扫描或通过本地代理。
- 配置:
[connection] proxy = http://localhost:8080
- 设置代理服务器(如 Burp Suite 或 Tor)。
6.5 自定义输出
- 场景:需要 JSON 格式报告便于自动化处理。
- 配置:
[output] report-format = json autosave-report-folder = /home/user/dirsearch_reports/
- 输出 JSON 报告,保存到指定目录。
7. 注意事项与最佳实践
-
合法性:
- 仅对有权限的目标进行扫描,未经授权的扫描可能违法。
- 在测试前获得书面许可(如渗透测试合同)。
-
避免触发防御:
- 降低线程数和请求速率,模拟正常用户行为。
- 使用
--random-agent
或自定义 User-Agent。 - 遇到 429(Too Many Requests)时,启用
--skip-on-status 429
。
-
优化字典:
- 使用针对目标技术栈的字典(如 WordPress、Drupal)。
- 推荐字典来源:SecLists(
https://github.com/danielmiessler/SecLists
)。
-
备份配置文件:
- 修改
/etc/dirsearch/config.ini
前备份:sudo cp /etc/dirsearch/config.ini /etc/dirsearch/config.ini.bak
- 修改
-
日志和报告管理:
- 定期清理
reports/
和logs/
目录,避免占用磁盘空间。 - 示例:删除旧报告:
rm -rf reports/*
- 定期清理
-
结合其他工具:
- 使用 Burp Suite 捕获 dirsearch 流量,分析响应。
- 结合
gobuster
或ffuf
进行交叉验证。
8. 常见问题与解决方法
-
问题:使用时有如下报错:
/usr/lib/python3/dist-packages/dirsearch/dirsearch.py:23: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html from pkg_resources import DistributionNotFound, VersionConflict
-
原因:
pkg_resources
弃用警告是由于dirsearch
使用了过时的 Python API 引起的,目前不影响工具功能。 -
如何屏蔽警告:
使用 Python 的-W
参数过滤DeprecationWarning
:
python3 -W ignore::DeprecationWarning /usr/lib/python3/dist-packages/dirsearch/dirsearch.py -u https://example.com
或设置环境变量
PYTHONWARNINGS
:export PYTHONWARNINGS="ignore::DeprecationWarning"
-
-
问题:扫描速度慢或频繁超时。
- 解决:
- 增加线程数:
-t 50
- 调整超时时间:
--timeout 15
- 使用更小的字典:
-w small_dict.txt
- 增加线程数:
- 解决:
-
问题:目标返回大量 403/404。
- 解决:
- 过滤无用结果:
--exclude-status 403,404
- 检查是否需要 Cookie 或自定义头:
-H "Authorization: Bearer token"
- 过滤无用结果:
- 解决:
-
问题:代理配置无效。
- 解决:
- 验证代理是否运行:
curl --proxy http://localhost:8080 https://example.com
- 检查配置文件中的
proxy
格式。
- 验证代理是否运行:
- 解决:
相关文章:
dirsearch 使用教程:详细指南与配置解析
dirsearch 是一款强大的开源命令行工具,用于对 Web 服务器进行目录和文件暴力破解。它通过扫描目标网站,尝试发现隐藏的目录、文件或潜在的敏感资源,广泛应用于渗透测试和安全审计。dirsearch 提供丰富的选项和灵活的配置文件支持,…...
【C++基础知识】C++类型特征组合:`disjunction_v` 和 `conjunction_v` 深度解析
这两个模板是C17引入的类型特征组合工具,用于构建更复杂的类型判断逻辑。下面我将从技术实现到实际应用进行全面剖析: 一、基本概念与C引入版本 1. std::disjunction_v (逻辑OR) 引入版本:C17功能:对多个类型特征进行逻辑或运算…...
ctfhow——web入门214~218(时间盲注开始)
web入门214 #another:uwvwko import requestsurlhttp://b0c11589-31c9-4bf9-8b66-6b5a1fc08726.challenge.ctf.show/api/index.php flag str{-_1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM}for i in range(1,50):for j in str:# 查数据库# payload "…...
shell练习(2)
1.给脚本service.sh进行修改,当执行的时候要求输入(1、2、3、4、5)时安装对应的httpd、vim、wget、更换aliyum等功能,当输入错误 时提示应该输入正确的值但是不会退出。 [rootbogon yy]# cat service.sh #!/bin/bash while : do cat <<-EOF --------------…...
【GO语言小案例手记】基于GIN的简易代理网关
基于GIN的简易代理网关 背景目标开工依赖主体代码配置文件 后记 背景 正好最近对GO也有点兴趣,搞个小项目练练手。 目标 网关需要能够根据路由自动映射到服务支持轮询、加权轮询、随机轮询三种算法简单好理解好使用,最好一个配置文件就能跑起来网关本…...
Qt 入门 6 之布局管理
Qt 入门 6 之布局管理 对于一个完整的软件,布局管理时必不可少的。其会让界面中嗯嗯部件呈现一个整齐的排列,也可令其大小随着窗口界面的大小变换而变化Qt 主要提供了QLayout 类及其子类作为布局管理器,他们可以实现常用的布局管理功能&…...
Java技术体系的主要产品线详解
Java技术体系的主要产品线详解 Java Card:支持Java小程序(Applets)运行在小内存设备(如智能卡)上的平台。 Java ME(Micro Edition):支持Java程序运行在移动终端(手机、P…...
第四章: 服务集成抽象
Chapter 4: 服务集成抽象 🌟 从上一章到本章 在第三章:传输机制中,我们学习了如何通过STDIO和SSE协议让LLM与不同服务器通信。现在想象这样的场景:你的AI助手需要同时操作本地文件和云端数据库。这时问题来了——如何让LLM像操作…...
高精度并行2D圆弧拟合(C++)
依赖库 Eigen3 GLM Ceres-2.1.0 glog-0.6.0 gflag-2.2.2 基本思路 Step 1: RANSAC找到圆弧,保留inliers点; Step 2:使用ceres非线性优化的方法,拟合inliers点,得到圆心和半径; -------…...
【防火墙 pfsense】1简介
(1) pfSense 有以下可能的用途: 边界防火墙 路由器 交换机 无线路由器 / 无线接入点 从OSI7层模型了解设备在典型网络结构中所处的位置。 (2)边界防火墙 ->要充当边界防火墙,pfSense 系统至少需要两个接…...
GPT-4o最新图像生成完全指南:10大应用场景与提示词模板
引言 OpenAI于近期推出的全新GPT-4o图像生成功能,代表了AI图像创作领域的重大突破。作为一个原生多模态系统,GPT-4o将文本理解和图像生成无缝整合,为创作者、教育工作者和专业人士提供了前所未有的视觉创作灵活性。本文将分享10个GPT-4o图像…...
32单片机——外部中断
STM32F103ZET6的系统中断有10个,外部中断有60个 1、中断的概念 中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的,中断功能的存在,很大程度上提高了单片机处理外部或内部事件的能力 eg::你打开火&…...
《Pinia 从入门到精通》Vue 3 官方状态管理 -- 进阶使用篇
《Pinia 从入门到精通》Vue 3 官方状态管理 – 基础入门篇 《Pinia 从入门到精通》Vue 3 官方状态管理 – 进阶使用篇 《Pinia 从入门到精通》Vue 3 官方状态管理 – 插件扩展篇 目录 Store 的模块化设计4.1 多模块结构设计✅ 推荐目录结构(中大型项目) …...
HarmonyOs @hadss/hmrouter路由接入
参考文档:官方文档 在根目录oh-package.json5配置 {"dependencies": {"hadss/hmrouter": "^1.0.0-rc.11"} }加入路由编译插件 hvigor/hvigor-config.json文件 {"dependencies": {"hadss/hmrouter-plugin": &…...
第九节:性能优化高频题-首屏加载优化策略
路由懒加载:component: () > import(‘…’) CDN加速第三方库、Tree-Shaking移除未使用代码 前端首屏加载优化核心策略解析 一、路由懒加载:按需拆分代码块 实现原理 通过动态导入语法 import() 将路由组件拆分为独立代码块,仅在用户访问…...
ESP32_IDF_VScode安装多版本共存
ESP32_IDF_VScode安装多版本共存 一、安装离线版本idf 详情见文章:ESP32_IDF_基于win11的开发环境搭建 二、windows的VScode安装乐鑫插件 三、导入已经安装好的idf(将VScode插件和本地安装的IDF绑定的一个关系) 1、选择“配置ESP-IDF扩展”…...
JavaScript 的“积木”:函数入门与实践
引言:告别重复,拥抱模块化 想象一下,你在写代码时发现,有几段逻辑几乎一模一样,需要在不同的地方反复使用。你是选择每次都复制粘贴,还是希望能像搭积木一样,把这段逻辑封装起来,需…...
代码注释标记的含义
在代码中,TODO 是一种常用的注释标记,用于标识需要后续处理或完善的任务。它是开发者之间的常见约定,帮助团队协作和任务管理。以下是详细解释: 1. TODO 的核心含义 待办事项:标记代码中需要完成但尚未实现的功能、需…...
深度学习:迁移学习
迁移学习 标题1.什么是迁移学习 迁移学习(Transfer Learning)是一种机器学习方法,就是把为任务 A 开发 的模型作为初始点,重新使用在为任务 B 开发模型的过程中。迁移学习是通过 从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数…...
Nest集成健康检查
文章目录 前言✅ NestJS 健康检查集成思路(标准实践)📦 推荐使用官方包: 🧱 结构设计✅ 1. 创建健康模块✅ 2. 集成 nestjs/terminushealth.module.tshealth.controller.ts ✅ 3. 在 AppModule 注册模块 🔍…...
第十五届蓝桥杯 2024 C/C++组 拼正方形
目录 题目: 题目描述: 题目链接: 思路: 思路详解: 易错点: 代码: 代码详解: 题目: 题目描述: 题目链接: P10898 [蓝桥杯 2024 省 C] 拼正…...
前端出现的一些新技术或者升级的技术汇总
以下是截至2024年第三季度前端领域的最新技术动态与论坛热议焦点,涵盖框架、工具链、性能优化等方向,结合社区讨论和实际案例展开分析: 一、框架演进与争议热点 1. React 19「Actions」引发范式转变 核心变化: 服务端Actions&…...
SQL数据类型
数字类型 1. 整型(Integer) 整型数据类型用于存储整数值,不包含小数部分。通常用于表示没有小数部分的数字,如年龄、数量、ID 等。 常见的整型数据类型: INT:用于存储常规整数值,通常占用 4 字…...
手机访问电脑端Nginx服务器配置方式
修改当前站点Nginx的配置如下。其中端口号必须是一个比较独特的端口号,比如8001。这样可以跟别的项目区分开来。域名使用0.0.0.0。 server {listen 80;listen 8001;server_name zfmap.cc 0.0.0.0;假设你电脑端的ip地址是192.168.1.101,那么你的手机与你的电脑连在同…...
PyQt6基础_QTabWidget
目录 代码 运行 官方文档 PySide6.QtWidgets.QTabWidget - Qt for Python 代码 class TempWidget(QWidget):def __init__(self):super().__init__()self.tabs QTabWidget()self.tabs.tabBarClicked.connect(self.tabs_tabBarClicked)widget_tab1 QWidget()widget_tab2…...
海思ISP调试记录
1、proc_param 功能:在海思中,proc_param参数用来控制每个多少帧更新一次ISP,默认是30帧。 过短的更新间隔会导致图像参数不稳定,产生闪烁或色彩跳跃4过长的间隔会使3A调整滞后,影响动态场景适应性1海思建议在1080p3…...
以运营为核心的智能劳动力管理系统,破解连锁零售、制造业排班难题
在连锁零售、制造业、物流等劳动力密集型行业中,排班与考勤管理不仅是人力资源管理的核心环节,更是直接影响企业运营效率、成本控制与合规风险的关键场景。尤其在当前经济环境下,企业面临用工成本攀升、政策合规趋严、业务波动频繁等多重挑战…...
缓存穿透、雪崩、击穿深度解析与解决方案
缓存穿透、雪崩、击穿深度解析与解决方案 一、缓存三大核心问题全景解析 1. 问题定位与影响分析 问题类型触发条件典型现象核心风险缓存穿透大量请求访问不存在的键Redis 命中率骤降(<10%)数据库压力激增,可能宕机缓存雪崩大量缓存键同…...
【AI】基于OllamaSharp与.NET Core API的高效LLM查询实现
本文旨在演示如何通过OllamaSharp NuGet包在.NET Core API中高效查询Ollama大语言模型,重点展示如何通过JSON配置文件动态设置模型参数和服务器地址,实现灵活维护的AI服务架构。 创建.NET Core API项目dotnet new webapi -n OllamaLLMAPI cd OllamaLLMAPI添加OllamaSharp NuG…...
kotlin和MVVM的结合使用总结(二)
MVVM 架构详解 核心组件:ViewModel 和 LiveData 在 Android 中,MVVM 架构主要借助 ViewModel 和 LiveData 来实现。ViewModel 负责处理业务逻辑,而 LiveData 则用于实现数据的响应式更新。 ViewModel 的源码分析 ViewModel 的核心逻辑在 …...
U盘能识别但无法写入数据的原因
1. U 盘物理损坏 原因:U 盘内部存储芯片、电路板或接口接触不良,可能因摔落、高温、频繁插拔等导致。表现:插入电脑能识别盘符,但读写时提示 “磁盘错误”“无法访问” 或操作无反应。解决方法: 尝试用其他设备&#…...
多模态大模型 Qwen2.5-VL 的学习之旅
Qwen-VL 是阿里云研发的大规模视觉语言模型(Large Vision Language Model, LVLM)。Qwen-VL 可以以图像、文本、检测框作为输入,并以文本和检测框作为输出。Qwen-VL 系列模型性能强大,具备多语言对话、多图交错对话等能力ÿ…...
linux sudo 命令介绍
sudo(superuser do)是一个用于 Linux 系统的命令,它允许授权用户以其他用户(通常是 root 超级用户)的安全权限执行命令。 有了 sudo,用户在执行特定的、需要更高权限的操作时,就不需要切换到 r…...
STM32F103系列单片机寄存器操作和标准库操作
关于stm32,标准库很早就学完了,但如果想要更加深入学习计算机硬件,那么学会寄存器操作是非常有必要的。今天从最简单的点灯开始,我们来对比一下二者的不同。 一、寄存器操作和标准库操作中点亮LED的区别 寄存器操作:…...
如何解决PyQt从主窗口打开新窗口时出现闪退的问题
在PyQt5中,当从主窗口打开新窗口时,经常会出现闪退现象,这通常是由于对象生命周期管理不当或事件循环错误等所导致。 1. 确保新窗口实例被正确引用 新窗口的实例若未被主窗口引用,可能会被Python的垃圾回收机制销毁。 错误示例&…...
2025五一杯数学建模竞赛思路助攻预定
2025五一杯数学建模竞赛思路助攻预定(思路内容见文末名片) 一、概况 数学建模竞赛是一项模拟面对实际问题寻求解决方案的活动,是一次近似 于“真刀真枪”的创新探索性实践训练。在丰富并活跃学生课外生活活动的同 时,数学建模竞…...
Java集合框架解析
一、集合框架概述 1. 集合框架体系结构 Java集合框架(Java Collections Framework, JCF)位于java.util包中,包含三大核心接口: Collection:单列数据集合的根接口 List:有序可重复集合Set:无序…...
《100天精通Python——基础篇 2025 第1天:从编程语言到计算机基础,开启你的学习之旅》
目录 一、计算机组成原理之概述篇二、编程语言是什么三、编译型语言和解释型语言的区别3.1 编译型语言3.2 解释型语言 四、Python是什么五、Python有哪些优点和缺点?5.1 Python的优点5.2 Python 的缺点 六、学Python能干什么,Python的应用领域有哪些&…...
JavaFX 第三篇 HostServices和Platform
1、HostServices类 介绍这个类主要是使用里面的一个方法 返回类型方法说明voidshowDocument(java.lang.String uri)使用默认浏览器打开一个url地址 /*** description: 程序打开3秒后,打开百度* author: HK* since: 2025/4/24 16:40*/ public class Demo1 extends…...
【Java 8新特性】Stream API 和 Lambda 表达式
一、前言 Java 8 的 Stream API 和 Lambda 表达式 为集合处理带来了函数式编程风格,显著简化了代码并提高了可读性。 二、Lambda 表达式 1.作用 简化匿名内部类的语法,允许将函数作为参数传递。实现函数式接口(只有一个抽象方法的接口&…...
Vue 3 相比 Vue 2 的优势
1. 性能优化 更快的渲染: 基于 Proxy 的响应式系统,比 Vue 2 的 Object.defineProperty 更高效,初始化速度和内存占用优化显著。编译时优化(如静态树提升、补丁标志等),减少运行时开销。 更小的体积&#…...
深度解析 TransmittableThreadLocal(TTL):原理、实战与优化指南
深度解析 TransmittableThreadLocal(TTL):原理、实战与优化指南 在现代 Java 应用中,ThreadLocal 被广泛用于线程隔离上下文,比如用户会话、链路追踪等。但随着线程池的普及,ThreadLocal 也暴露出严重局限性,尤其是在异步场景中上下文无法正确传递的问题。 本文从 Thr…...
入门 Go 语言
本专栏的 Go 语言学习参考了B站UP 软件工艺师的视频 本节需要: Go 语言环境VSCode 安装环境 下载 Go 环境,并安装下载 VSCode,安装。在 VSCode 中安装 Go 扩展: 接下来就可以编写 Go 语言了 第一条 Go Go 语言是一种编译型…...
膳食营养诊断活动:科技赋能,共筑全民健康新基石
膳食营养诊断活动:科技赋能,共筑全民健康新基石 一、活动背景:响应营养周号召,开启健康新征程 (一)2025营养周主题解读 2025年全民营养周的核心主题“吃动平衡,健康体重,全民行动…...
考拉悠然:科技与匠心,以烟草虫情AI监测系统共筑品质未来
李工,一位在卷烟厂辛勤耕耘了二十余载的老工艺师,他的青春和汗水,都挥洒在了这片弥漫着烟草香气的土地上。他像一位老农,精心呵护着每一片烟叶,因为他深知,烟草品质的把控,就是守护着卷烟厂的生…...
k8s基于角色的访问控制(RBAC)
Kubernetes(k8s)权限管理主要是基于角色的访问控制(RBAC),以下是其核心内容: 核心概念 Role 和 ClusterRole Role :定义特定命名空间内的权限规则,用于在某个命名空间内设置访问权限…...
拆解华为Pura X新发现:“仿生”散热与钛合金“骨架”
拆解华为Pura X新发现:“仿生”散热与钛合金“骨架” 原创 黑毛警长008 AR圈 2025年04月24日 09:42 广东 01 引言:AI时代带来折叠屏新挑战 随着华为Pura X的发布,市场上已出现多家机构的拆解分析,但大多聚焦于芯片和电子组件层面…...
Typecho 访客统计插件最新版-前后台统计图均可显示
这是一个为 Typecho 博客系统开发的访客统计插件,基于原版的VistorLogger修改版本。该插件提供了详细的访问统计功能,包括访问国家/地区统计、IP分布等信息,并进行了隐私保护处理。 功能特点 独立页面模板显示访问国家/地区统计(…...
与智者同行:京东零售技术人的成长书单
我们正处在一个快速变化的时代,信息洪流奔涌而来,如何穿透纷繁的表象,理解世界的复杂性?又如何在充满不确定性的环境中,找到属于自己的方向? 阅读,是最从容的答案,让我们站在智者的…...
matplotlib1-画成对数据图
画图的类型 成对数据(Pairwise data) 成对形式的数据 (x, y);表格形式的数据 (var_0, var_1, ..., var_n) ;函数形式的数据 f(x) y 1. 绘图-plot(x, y) 以线条或标记的形式将 y 随 x 的变化情况绘制成图表。 2. 散点图-scatt…...