菜单

命令行界面

相关源文件

此页面详细介绍了 Sherlock 的命令行界面 (CLI)。Sherlock 是一款允许用户跨社交网络搜索用户名的工具。CLI 提供了多种选项来配置搜索、控制输出格式和管理网络设置。有关安装方法的更多信息,请参阅软件包安装Docker 部署

CLI 概述

Sherlock 的命令行界面通过 Python 的sherlock_project/sherlock.py中的ArgumentParser实现。CLI 处理用户命令并配置搜索引擎,以在各种社交网络上执行用户名查找。

CLI 架构

来源: sherlock_project/sherlock.py566-974

基本用法

使用 Sherlock 的最基本方法是搜索单个用户名

此命令搜索所有支持的社交网络中的“username”,并将结果保存到名为 username.txt 的文本文件中。

在单个命令中搜索多个用户名

用户名模式匹配

Sherlock 支持使用 {?} 占位符搜索相似的用户名,该占位符会被替换为下划线 (_)、连字符 (-) 和点 (.)

这将搜索 user_nameuser-nameuser.name

来源: sherlock_project/sherlock.py153-167 sherlock_project/sherlock.py692-697

命令行选项

Sherlock 提供了一套全面的命令行选项,这些选项分为几个类别。

选项类别

来源: sherlock_project/sherlock.py567-730

搜索选项

选项描述默认
用户名要检查的一个或多个用户名(必需)不适用
--site SITE_NAME将搜索限制在特定站点(可多次指定)所有站点
--timeout TIMEOUT等待响应的秒数60
--nsfw在搜索中包含 NSFW 站点

来源: sherlock_project/sherlock.py630-636 sherlock_project/sherlock.py662-669 sherlock_project/sherlock.py716-720

输出选项

选项描述默认
-o, --output FILE单个用户名的输出文件username.txt
-fo, --folderoutput FOLDER多个用户名的输出文件夹当前目录
--csv生成 CSV 输出文件
--xlsx生成 Excel (XLSX) 输出文件
--no-txt禁用文本输出文件的创建
--print-all输出用户名未找到的站点
--print-found输出用户名找到的站点True

来源: sherlock_project/sherlock.py588-597 sherlock_project/sherlock.py616-627 sherlock_project/sherlock.py670-683 sherlock_project/sherlock.py723-728

网络选项

选项描述默认
-t, --tor通过 Tor 进行请求(需要安装 Tor)
-u, --unique-tor为每个请求使用新的 Tor 线路
-p, --proxy PROXY_URL为请求使用代理(例如 socks5://127.0.0.1:1080
-l, --local强制使用本地 data.json 文件
-j, --json JSON_FILE从 JSON 文件或 URL 加载数据

来源: sherlock_project/sherlock.py600-614 sherlock_project/sherlock.py638-645 sherlock_project/sherlock.py654-660 sherlock_project/sherlock.py708-713

显示选项

选项描述默认
-v, --verbose, -d, --debug显示额外的调试信息
--no-color不使用颜色输出到终端
-b, --browse在默认浏览器中打开所有结果
--dump-response转储 HTTP 响应以供调试
--version显示版本信息不适用

来源: sherlock_project/sherlock.py571-586 sherlock_project/sherlock.py647-652 sherlock_project/sherlock.py685-690 sherlock_project/sherlock.py699-705

命令处理流程

执行 Sherlock 命令时,会发生以下一系列操作

来源: sherlock_project/sherlock.py566-974 sherlock_project/sherlock.py170-530

输出格式

Sherlock 支持多种输出格式

  1. 文本文件:默认格式,包含找到用户名的 URL 列表
  2. CSV 文件:包含详细信息,例如站点名称、URL、状态和响应时间
  3. Excel (XLSX) 文件:与 CSV 类似,但采用 Excel 格式

文本输出

默认情况下,Sherlock 会创建一个文本文件(例如 username.txt),其中包含找到用户名的 URL,后跟检测到用户名的总站点数。

来源: sherlock_project/sherlock.py878-886

CSV 输出

使用 --csv 选项时,Sherlock 会创建一个 CSV 文件,其中包含以下列:

  • username
  • name(站点名称)
  • url_main(主站点 URL)
  • url_user(用户个人资料 URL)
  • exists(账户状态)
  • http_status(HTTP 状态码)
  • response_time_s(响应时间,单位:秒)

来源: sherlock_project/sherlock.py888-930

Excel 输出

使用 --xlsx 选项时,Sherlock 会创建一个与 CSV 输出具有相同列的 Excel 文件。

来源: sherlock_project/sherlock.py931-970

示例

搜索用户名

高级搜索

在特定网站上搜索用户名

使用模式匹配进行搜索

搜索并导出到 CSV

使用代理进行搜索

搜索多个用户名并保存到特定文件夹

输出控制

显示所有结果,包括未找到用户名的网站

将输出保存到特定文件

生成所有输出格式

来源: sherlock_project/sherlock.py856-970 docs/README.md40-100

错误处理

CLI包含多项错误检查

  1. 验证不兼容的选项(例如,Tor 和代理不能同时使用)
  2. 检查有效的超时值
  3. 确保正确使用输出选项(例如,--output 只能与单个用户名一起使用)
  4. 在使用 --site 选项时验证网站名称

如果遇到任何错误,程序将显示错误消息并退出。

来源: sherlock_project/sherlock.py533-555 sherlock_project/sherlock.py750-781

内部命令处理

内部,CLI 参数由 main() 函数在 sherlock_project/sherlock.py566-974 中进行处理,该函数

  1. 设置参数解析器
  2. 解析命令行参数
  3. 初始化必要的组件(站点数据、查询通知)
  4. 处理用户名模式
  5. 使用 sherlock() 函数执行搜索
  6. 根据指定的选项格式化和输出结果

来源: sherlock_project/sherlock.py566-974